我想知道那些意思是什么:
class ChangeTimeColumns < ActiveRecord::Migration
def self.up
end
def self.down
end
end
因为有时Rails只会创建这样的迁移:
class ChangeTimeColumns < ActiveRecord::Migration
def change
end
end
非常感谢任何澄清。
答案 0 :(得分:3)
如果你犯了错误,就可以撤销迁移。
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或raise异常。查看本指南的第4.1节====&gt; http://guides.rubyonrails.org/migrations.html#using-the-up-down-methods
答案 1 :(得分:1)
在当前版本的rails之前,self.up和self.down是标准格式,即在Rails 3.0.x中
self.up用于定义rake db:migrate
上应该发生什么的行为,其中self.down定义了rake db:rollback
的行为。变化是相对较新的,通常用于可以以微不足道的方式推断自我降低行为的地方。
答案 2 :(得分:0)
你在self.up中执行的每次INSERT,UPDATE等操作都会在self.down中执行相反的操作。
如果由于错误而必须稍后回滚这些迁移,这一点非常重要。
答案 3 :(得分:0)
任何模型的Self.up将属性插入到其中写入的模型表中。
虽然self.down与之相反。