从4.2升级到rails 5.2后,任何迁移都会抛出:
ActiveRecord :: ConcurrentMigrationError:无法运行迁移,因为当前正在运行另一个迁移过程 .
数据库适配器是mysql2
最初我认为这是因为我在开发环境中导入的现有 生产环境 数据库中的一些陈旧数据 . 但同样的问题发生在一个干净的数据库中 .
为了克服它(因为我真的需要在其他一些问题上取得进展),我不得不在实际的rails代码中禁用咨询锁定检查 .
经过几个小时的尝试来确定“锁定”发生的位置,甚至从头开始创建一个rails应用程序,结果证明罪魁祸首是database.yml文件中的“cast:false”行 . 一旦被评论出来,我的铁轨世界就恢复了和平,移民再次开始运作 .
开发:适配器:mysql2数据库:db用户名:用户密码:passwd host:localhost #cast:false
具有讽刺意味的是,我甚至无法回想起两年前代码中的“cast:false”是如何结束的 . 我隐约记得我把它放在那里有目的 . 尽管如此,如果没有它,所有测试都可以正常运行,并且到目前为止,实际应用程
我希望这可以帮助那些在某些时候升级到5.2的人 .
1 回答
经过几个小时的尝试来确定“锁定”发生的位置,甚至从头开始创建一个rails应用程序,结果证明罪魁祸首是database.yml文件中的“cast:false”行 . 一旦被评论出来,我的铁轨世界就恢复了和平,移民再次开始运作 .
开发:适配器:mysql2数据库:db用户名:用户密码:passwd host:localhost #cast:false
具有讽刺意味的是,我甚至无法回想起两年前代码中的“cast:false”是如何结束的 . 我隐约记得我把它放在那里有目的 . 尽管如此,如果没有它,所有测试都可以正常运行,并且到目前为止,实际应用程
我希望这可以帮助那些在某些时候升级到5.2的人 .