回答:
bundle exec rake db:rollback
rails destroy model <model_name>
モデルを生成すると、データベースの移行が作成されます。そのモデルで「破棄」を実行すると、移行ファイルは削除されますが、データベーステーブルは削除されません。だから実行する前に
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
。新しい空のデータベースになります。
これを試して
rails destroy model Rating
モデル、移行、テスト、フィクスチャを削除します
今後の質問者向け:コンソールからテーブルを削除できない場合は、テーブルを削除する移行を作成してみてください。移行を作成してから、次のように削除したいファイルノートテーブルに追加する必要があります。
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
移行を削除するには(既に移行を移行している場合)
rake db:migrate:down VERSION="20130417185845" #Your migration version
モデルを削除するには
rails d model name #name => Your model name
rails d model
私は私のを逆転させるために探しているものですrails g model
。
Rails 5で動作するJenny Langの回答の別の実装を次に示します。
最初に移行ファイルを作成します。
bundle exec be rails g migration DropEpisodes
次に、移行ファイルに次のように入力します。
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
実行rails db:migrate
するとテーブルが削除されます。を実行するとrails db:rollback
、RailsはActiveRecord::IrreversibleMigration
エラーをスローします。