mysql - 在 Rails 中,是否有其他解决方案可以将列添加到数据库中的大表中?

标签 mysql ruby-on-rails migration

所以,我想知道是否有一种巧妙的方法来处理向包含大量数据的 MySQL 表添加列。如果我走标准迁移路线,大约需要 6 小时。我想知道是否有更好的解决方案。

我们避免长时间迁移的一种方法是创建一个新表/模型并在 ActiveRecord 中设置委托(delegate)类型关系。虽然这工作得很好,但似乎有点错误。

我应该振作起来并进行超长迁移吗?

最佳答案

我想我会让人们知道,我决定探索由 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

关于mysql - 在 Rails 中,是否有其他解决方案可以将列添加到数据库中的大表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17531646/

相关文章:

php - 如何使用 PHP 将两个字段中的值相除并将结果插入到另一个字段中

Laravel SQLite 字段的默认值

ruby-on-rails - Rails 如何将 STI 模型转换为其父模型?

c# - 除了 [拆箱?

tomcat - 将tomcat7迁移到tomcat9后无法找到taglib

mysql - 查询选择: who two employee works for the same company

mysql - 如何在 sql 代码中使用函数 'begin atomic' 来创建触发器?

mysql - 从 MySQL 中的 2 个不同表创建一个别名列

ruby-on-rails - 为 Rspec 测试填充在父 Controller 中定义的实例变量

ruby-on-rails - Rspec 引发错误未按预期工作,需要正确的语法