数据库迁移的全面指南
1. 更改列
在数据库操作中,有时需要更改列的类型或相关选项。可以使用 change_column() 方法来实现这一目的,其使用方式与 add_column 类似,但需要指定现有列的名称。
1.1 整数列转换为字符串列
假设 order_type 列当前是整数类型,但需要将其改为字符串类型,并且保留现有数据。示例代码如下:
def up
change_column :orders, :order_type, :string
end
1.2 字符串列转换为整数列的问题
若要进行相反的转换,可能会出现问题。例如,若应用程序在该列中存储了如 “new” 这样的数据,执行以下代码时,”new” 无法转换为整数,数据将会丢失。
def down
change_column :orders, :order_type, :integer
end
如果这种数据丢失可以接受,那么该迁移是可行的。若要创建一个不可逆的迁移,可以抛出 ActiveRecord::IrreversibleMigration 异常:
class ChangeOrderTypeToString < ActiveRecord::Migrat
超级会员免费看
订阅专栏 解锁全文
1177

被折叠的 条评论
为什么被折叠?



