self.up v self.down (Rails) 中的`rename_column`有什么区别
What is the difference between `rename_column` in self.up v self.down (Rails)
rename_column
和self.up
和self.down
有什么区别?
我有一个如下所示的迁移文件:
def self.up
rename_column :posts, :title, :subject
end
def self.down
rename_column :posts, :subject, :title
end
到目前为止,我只在迁移文件中看到 def change
。不是 self.up
和 self.down
.
如果一个是 remove_column
,一个是 add_column
,我可以看出这有什么意义 - 模拟 rename_column
,还有一个好处是能够改变数据类型等
但我不明白为什么 rename
需要两次。这是怎么回事?
rename_column
在 up
和 down
中都使用,因为除了名称之外不需要更改任何列详细信息。 title
和 subject
都是相对较短的基于文本的值。如果您删除一列并添加一个新列,您只会使用相同的数据类型和其他属性。在这种情况下,重命名列更为方便。
仅仅因为您正在更改列并不意味着您必须更改它的所有内容。
rename_column
和self.up
和self.down
有什么区别?
我有一个如下所示的迁移文件:
def self.up
rename_column :posts, :title, :subject
end
def self.down
rename_column :posts, :subject, :title
end
到目前为止,我只在迁移文件中看到 def change
。不是 self.up
和 self.down
.
如果一个是 remove_column
,一个是 add_column
,我可以看出这有什么意义 - 模拟 rename_column
,还有一个好处是能够改变数据类型等
但我不明白为什么 rename
需要两次。这是怎么回事?
rename_column
在 up
和 down
中都使用,因为除了名称之外不需要更改任何列详细信息。 title
和 subject
都是相对较短的基于文本的值。如果您删除一列并添加一个新列,您只会使用相同的数据类型和其他属性。在这种情况下,重命名列更为方便。
仅仅因为您正在更改列并不意味着您必须更改它的所有内容。