我想知道这些是什么意思:
class ChangeTimeColumns < ActiveRecord::Migration
def self.up
end
def self.down
end
end
有时 Rails 会像这样创建迁移:
class ChangeTimeColumns < ActiveRecord::Migration
def change
end
end
任何澄清将不胜感激。
我想知道这些是什么意思:
class ChangeTimeColumns < ActiveRecord::Migration
def self.up
end
def self.down
end
end
有时 Rails 会像这样创建迁移:
class ChangeTimeColumns < ActiveRecord::Migration
def change
end
end
任何澄清将不胜感激。
如果您犯了错误,您可以逆转迁移。
rake db:rollback #this will rollback the most recent migration
rake db:rollback STEP=3 #this will rollback 3 of them
我将 self.up 和 self.down 添加到我所有的迁移中,如果存在无法撤消的迁移,则不能包含 down 或在 down 中引发异常。查看本指南中的第 4.1 节 ====> http://guides.rubyonrails.org/migrations.html#using-the-up-down-methods
在当前版本的 rails 之前,self.up 和 self.down 是标准格式,即在 Rails 3.0.x 中
self.up 用于定义应该在rake db:migrate
where 上发生的行为,因为 self.down 定义了 a 的行为rake db:rollback
。Change 相对较新,通常用于可以以微不足道的方式推断 self.down 行为的地方。
您在 self.up 中执行的每个 INSERT、UPDATE 等操作,您在 self.down 中执行相反的操作。
如果您以后由于错误而必须回滚这些迁移,这一点很重要。
Self.up 让任何模型将属性插入到其中写入的模型表中。
而 self.down 与之相反。