2016-02-08 26 views
1

以下是基本知识。我在SANDBOX环境中进行了部署。Rails模式&迁移继续恢复到VERSION = 0

我做了一些更改,并尝试重新部署。这个堆栈是第3章的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 

和任何后续耙分贝:迁移在什么结果。

回答

1

如果覆盖ENV [“VERSION”],那么rake db:migrate将降级而不是升级,如果VERSION小于db schema中最后一次已知的VERSION,请检查并避免使用类似的环境变量。

+0

谢谢。这正是发生的事情。忘记更新票证。感谢你的回答。 似乎很奇怪,这样一个常见的关键字将用于此。 –