1

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

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

我现在可以运行cap:deploy,一切似乎都按预期工作。问题是,我在我的开发副本上创建了一个新列,我正要运行cap deploy:migrate,但我担心它会清除我的生产数据库。

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

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

4

2 回答 2

4

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

尝试仅使用db:migrate

于 2015-11-30T05:37:25.353 回答
0

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

export RAILS_ENV=production; bundle exec rake db:abort_if_pending_migrations

如果您的迁移是最新的,这似乎不会打印任何内容,如果不是,则列出需要更新的表。这是在 Rails 4.1.8 中。

于 2018-12-20T22:58:07.840 回答