【问题标题】:Rails Migration - what's the point of self.up and self.downRails 迁移 - self.up 和 self.down 的意义何在
【发布时间】:2012-06-23 20:19:39
【问题描述】:
我想知道这些是什么意思:
class ChangeTimeColumns < ActiveRecord::Migration
def self.up
end
def self.down
end
end
有时 Rails 会像这样创建迁移:
class ChangeTimeColumns < ActiveRecord::Migration
def change
end
end
不胜感激。
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
ruby-on-rails-3.1
rake
【解决方案1】:
Self.up 让任何模型将属性插入到其中写入的模型表中。
self.down 与之相反。
【解决方案2】:
您在 self.up 中执行的每个 INSERT、UPDATE 等操作,您在 self.down 中执行相反的操作。
如果您以后由于错误而不得不回滚这些迁移,这一点很重要。
【解决方案3】:
在当前版本的 rails 之前,self.up 和 self.down 是标准格式,即在 Rails 3.0.x 中
self.up 用于定义rake db:migrate 上应该发生的行为,而 self.down 定义了rake db:rollback 的行为。 Change 相对较新,通常用于可以通过简单的方式推断 self.down 行为的情况。