Rails架构& migrate保持恢复为VERSION = 0

时间:2016-02-08 18:10:15

标签: ruby-on-rails ruby-on-rails-4 activerecord

这是基础知识。我在SANDBOX环境中进行了部署。

我做了一些更改,并尝试重新部署。 Stack是Cap3,带有Postgres DB / Rails 4.2

部署之前从未遇到过任何问题,在运行迁移时,由于没有待处理的迁移而不应该进行迁移,它基本上将所有迁移回滚到0状态。

我在开发环境中成功创建了此错误。 我不得不从之前的提交中恢复模式文件,因为当然还原将所有内容都重新推回。

所以现在。

ActiveRecord::Schema.define(version: 20151214201502) do ...

最后一个迁移文件是
20151214201502_create_host_group_membership_table

当我尝试部署或运行​​rake db:migrate时,我会完全恢复。所有表格都被删除了。

Schema.rb读取ActiveRecord::Schema.define(version: 0) do

rake db:migrate:status读取>

Status   Migration ID    Migration Name
--------------------------------------------------
  down    20150916151324  Create ...<edited> table
  down    20150916190627  Create ...<edited> table
  down    20150916195012  Create ...<edited> table
  down    20150918112956  Create ...<edited> table
  down    20151019175551  Create ...<edited> table
  down    20151020195644  Create ...<edited> table
  down    20151020202321  Create ...<edited> table 
  down    20151026021111  Create ...<edited> table
  down    20151124161525  Create ...<edited> table
  down    20151124185807  Create ...<edited> table
  down    20151214201502  Create ...<edited> table 

以及任何后续的rake db:migrate都没有结果。

2 个答案:

答案 0 :(得分:1)

如果覆盖ENV [&#34; VERSION&#34;],如果VERSION小于db模式中的最后一个已知VERSION,则rake db:migrate将降级而不是升级,因此请检查并避免类似的环境变量

答案 1 :(得分:0)

我遇到了完全相同的问题,但是Eric的回答在我的情况下不起作用。
诀窍是删除数据库,删除架构以及创建和迁移数据库:

$ rails db:drop
$ rm db/schema.rb
$ rails db:create
$ rails db:migrate