【发布时间】:2021-02-27 18:49:55
【问题描述】:
考虑到在 Rails 中有 2,000,000,000 多条记录的表上,将列从 int(10) 更改为 bigint(8) 的推荐方法是:
- 在生产中运行并向客户展示
- 记录不断被添加到表中
- 如上所述,表格很大
这是一个示例迁移,说明了结果应该是什么:
class ChangeTableNameIdType < ActiveRecord::Migration
def change
execute('ALTER TABLE table_name MODIFY COLUMN id BIGINT(8) NOT NULL AUTO_INCREMENT')
end
end
【问题讨论】:
-
应该可以只输入
change_column :table_name, :id, :bigint;但是,可能建议在运行时将应用程序置于维护模式以避免任何潜在的冲突。
标签: mysql ruby-on-rails ruby migration