Rails 迁移 - 更改模型的属性名称
Rails migration - changing the attribute name of a model
在 Comment
的 Rails 模型中,我自动提供 message
、date
属性以及 created_at
和 updated_at
属性通过 ActiveRecord::Migration
通过 t.timestamps
.
目前 comments
table 的日期属性在数据库 ( postgresql ) 中有值。我想删除 Comment
模型中的 date
属性,并在执行此操作时想更新 created_at
属性的 comments
db table 值 date
属性。
我该怎么做?
您可以在迁移文件中编写 rails 代码,如下所示,以更新列值。
假设列 date
的数据类型是 timestamp
。
class RemoveDateFromComment < ActiveRecord::Migration
def up
Comment.all.each do |comment|
comment.update(created_at: comment.date)
end
remove_column :comments, :date, :timestamp
end
def down
add_column :comments, :date, :timestamp
Comment.all.each do |comment|
comment.update(date: comment.created_at)
end
end
end
在 Comment
的 Rails 模型中,我自动提供 message
、date
属性以及 created_at
和 updated_at
属性通过 ActiveRecord::Migration
通过 t.timestamps
.
目前 comments
table 的日期属性在数据库 ( postgresql ) 中有值。我想删除 Comment
模型中的 date
属性,并在执行此操作时想更新 created_at
属性的 comments
db table 值 date
属性。
我该怎么做?
您可以在迁移文件中编写 rails 代码,如下所示,以更新列值。
假设列 date
的数据类型是 timestamp
。
class RemoveDateFromComment < ActiveRecord::Migration
def up
Comment.all.each do |comment|
comment.update(created_at: comment.date)
end
remove_column :comments, :date, :timestamp
end
def down
add_column :comments, :date, :timestamp
Comment.all.each do |comment|
comment.update(date: comment.created_at)
end
end
end