【发布时间】:2020-04-10 17:52:58
【问题描述】:
我添加了新的迁移来更改列类型。 它在我的本地运行良好。
但我的团队成员遇到了迁移问题,因为该列不在迁移中。
看来我已经在数据库中手动添加了该列。
为了运行迁移,对我们(我和其他团队成员)没有任何问题,我想在迁移之前添加迁移以创建新列以更改列类型。
这样做的方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby database postgresql migration
我添加了新的迁移来更改列类型。 它在我的本地运行良好。
但我的团队成员遇到了迁移问题,因为该列不在迁移中。
看来我已经在数据库中手动添加了该列。
为了运行迁移,对我们(我和其他团队成员)没有任何问题,我想在迁移之前添加迁移以创建新列以更改列类型。
这样做的方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby database postgresql migration
迁移文件的名称类似于 20190616110000_create_foo.rb,并按本机字母顺序应用。
只需根据您需要的顺序重命名文件更改时间戳。
【讨论】:
另一种更合适的方法是在您的迁移(更改列类型)中,您应该添加一个条件来检查该列是否存在。
如果它已经存在(您的本地),则只需更改列类型。如果它不存在(您的本地同事),则使用您想要的类型创建一个列
if column_exists? :table_name, :column_name
change_column :table_name, :column_name, :type
else
add_column :table_name, :column_name, :type
end
【讨论】: