所以,我想知道是否有一种聪明的方法来处理向包含大量数据的 MySQL 表添加列。如果我要走标准迁移路线,大约需要 6 个小时。我想知道是否有更好的解决方案。
我们避免长时间迁移的一种方法是创建一个新表/模型并在 ActiveRecord 中设置委托类型的关系。虽然这很好用,但似乎有点不对劲。
我应该振作起来并进行超长迁移吗?
所以,我想知道是否有一种聪明的方法来处理向包含大量数据的 MySQL 表添加列。如果我要走标准迁移路线,大约需要 6 个小时。我想知道是否有更好的解决方案。
我们避免长时间迁移的一种方法是创建一个新表/模型并在 ActiveRecord 中设置委托类型的关系。虽然这很好用,但似乎有点不对劲。
我应该振作起来并进行超长迁移吗?
我想我会让人们知道,我决定探索由 SoundCloud 的人们编写的 Gem 来处理长时间迁移,同时保持数据库正常运行(未锁定)。
https://github.com/soundcloud/lhm
其他解决方案包括 Percona 的 pt-online-schema-change:
http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html