我正在深入研究RoR,我需要删除模型及其表格,以及更新引用它的其他模型。我在google和SO上搜索过,我找到的最佳答案是this,但答案我不清楚。最终的共识是使用ruby script/destroy model
方法然后“手动编辑可能包含这些已删除模型的refs的任何迁移”这是我不清楚的最后一部分。我想删除user
和profile
模型和表格的模型...
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :email
t.string :password
t.timestamps
end
end
def self.down
drop_table :users
end
end
class CreateProfiles < ActiveRecord::Migration
def self.up
create_table :profiles do |t|
t.string :name
t.integer :user_id
t.timestamps
end
end
def self.down
drop_table :profiles
end
end
并更新引用它们的article
模型和表格......
class CreateArticles < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.string :title
t.text :body
t.datetime :published_at
t.string :image
t.timestamps
end
end
def self.down
drop_table :articles
end
end
class AddUserIdToArticles < ActiveRecord::Migration
def self.up
add_column :articles, :user_id, :integer
end
def self.down
remove_column :articles, :user_id
end
end
我可以执行ruby script/destroy user
然后调用self.down
迁移中的article
方法吗?如果是这样,我如何调用'self.down`方法以及按什么顺序?
非常感谢您的帮助!
答案 0 :(得分:1)
是的。只需用
删除它ruby script/destroy model user
ruby script/destroy model profile
然后使用以下内容回滚数据库或self.down:
rake db:rollback
现在您可以安全地删除迁移文件。