rails g model Rating user_id:integer message:string value:integer
怎样才能彻底删除这个模型呢?谢谢
生成模型时,它会创建数据库迁移。如果您在该模型上运行“destroy”,它将删除迁移文件,但不会删除数据库表。所以在跑步之前
bundle exec rails db:rollback
rails destroy model <model_name>
对于 5.0 及更高版本之前的 Rails 版本,请使用
rake
而不是 rails
bundle exec rake db:rollback
rails destroy model <model_name>
试试这个
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
这是 Jenny Lang 答案的不同实现,适用于 Rails 5。
首先创建迁移文件:
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
错误。
如果您对可逆迁移以删除表感兴趣
class DropProductsTable < ActiveRecord::Migration[7.0]
def change
drop_table :products do |t|
t.string :name
t.text :description
t.decimal :price, precision: 8, scale: 2
t.timestamps
# Rest of the stuff like indexes. Consider copying directly from schema.rb
end
end
end