在分段和生产服务器之间处理rails迁移的最佳方法是什么?

时间:2016-11-10 18:10:36

标签: mysql ruby-on-rails activerecord database-migration

我已经接管了一个rails项目的控制权,但是在我带头之前,它只是由一个半技术经理处理,而不是一个了解rails的人。在这段时间里,他们意识到他们需要在数据库中添加一些表/行,为此他们只是通过MySQL添加它们并没有为它们创建任何迁移。当我第一次接手时,我添加了这些表/行的迁移,以便我可以在本地使用它们。

问题是,当我尝试在通过MySQL手动添加表的登台/生产服务器上运行迁移时,迁移失败(因为我添加的迁移使本地更新的表/行崩溃,因为它们已经存在) 。这不是一个问题,但我想现在为一个全新的表添加一个迁移,但是由于旧的表已经崩溃,因为表已经存在,所以这个迁移永远不会被运行。

据我所知,修复此问题的唯一方法是删除表,然后使用我编写的迁移重新添加它们。我不确定这样做的原因是我丢失了那些不可能发生的表格中的所有数据。我可能有一种方法来备份数据并在我删除表并重新添加它们之后重新加载它但我从未这样做过,所以不知道从哪里开始。或者,我可以手动更新MySQL中的数据库以添加我想要的新表,并保留本地的迁移,但这似乎真的很hacky并且无法使用它们的目的。

那么,有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Rails使用Redirect /en/ http://domain.com/ 表来跟踪已经运行的迁移。它有一个名为schema_migrations的列,它是最后一次运行迁移的编号。

version

一种方法是将此表更新为已将更改应用于数据库的迁移号