Rails 3:" Schema迁移表尚不存在"

时间:2013-05-31 15:17:51

标签: mysql ruby-on-rails ruby migration

所以几个月前,由于某种原因,我得到了一个奇怪的git消息,并且害怕部署。所以我开始直接对生产应用程序进行更改,并尝试手动对本地代码进行相同的更改。

所以现在是更新所有内容的时候了,我想将本地代码与生产代码同步,然后再次使用git和capistrano进行部署。所以我从生产服务器下载了代码并将一些文件复制粘贴到我的本地代码中,以确保我不会覆盖生产服务器上的任何内容。

我现在能够运行cap:deploy,一切似乎都按预期工作。问题是,我在我的开发副本上创建了一个新列,我即将运行cap deploy:migrate,但我担心它会消灭我的生产数据库。

所以我运行rake db:migrate:status并收到消息Schema migrations table does not exists yet.我已经检查了我的生产数据库和架构迁移表。因此,似乎该应用程序无法识别我当前的迁移版本,我担心如果我运行cap deploy:migrate将运行所有迁移并清除我的数据库。

为什么我收到此消息?我该怎么办?

2 个答案:

答案 0 :(得分:3)

我的情况可能与你有所不同,但我也得到了同样的信息。 我在使用Rails 4的本地PC上进行开发。

请尝试仅使用 db:migrate

答案 1 :(得分:0)

我发现的解决方案是使用abort_if_pending_migrations:

export RAILS_ENV=production; bundle exec rake db:abort_if_pending_migrations

如果您的迁移是最新的,这似乎什么也不会打印,如果不是,则列出需要更新的表。这是Rails 4.1.8的版本。