【发布时间】:2016-12-23 01:08:43
【问题描述】:
使用 Rails 5.0。它在 Rails 指南和我的教程中说,down 中的方法应该与up 的顺序相反。
例如:
class AlterUsers < ActiveRecord::Migration[5.0]
def up
rename_table("users", "admin_users")
add_column("admin_users", "username", :string, :limit =>25, :after => "email")
change_column("admin_users", "email", :string, :limit => 100)
end
def down
change_column("admin_users", "email", :string, :default => '', :null => false)
remove_column("admin_users", "username")
rename_table("admin_users", "users")
end
end
注意:down 中的方法与其在up 中的执行顺序相反。即:由于change_column 最后从up 执行,所以第一个在down 执行。
我了解down 必须撤消up 所做的一切,以便您将数据库恢复到以前的状态。我只是想知道为什么down 中的方法必须与up 中的执行顺序相反,是否有任何特殊原因?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-5 rails-migrations