【问题标题】:What is the difference between `rename_column` in self.up v self.down (Rails)self.up v self.down(Rails)中的`rename_column`有什么区别
【发布时间】:2016-07-27 20:14:58
【问题描述】:

rename_columnself.upself.down 有什么区别?

我有一个如下所示的迁移文件:

def self.up
  rename_column :posts, :title, :subject
end

def self.down
  rename_column :posts, :subject, :title
end

到目前为止,我只在迁移文件中看到def change。不是self.upself.down

如果一个是remove_column,一个是add_column,我可以看到这会有什么意义 - 模拟一个rename_column,还有能够改变数据类型等的额外好处。

但我不明白为什么需要两次rename。这是怎么回事?

【问题讨论】:

    标签: ruby-on-rails migration rails-migrations


    【解决方案1】:

    rename_column 用于updown,因为除了名称之外不需要更改任何列详细信息。 titlesubject 都是相对较短的基于文本的值。如果您删除了一列并添加了一个新列,那么您将使用相同的数据类型和其他属性。在这种情况下,重命名列更方便。

    仅仅因为您要更改一列并不意味着您必须更改它的所有内容。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 2012-06-23
      • 2019-04-18
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      相关资源
      最近更新 更多