2011-03-20 102 views
3

昨天我在一次移民中犯了一个新秀错误。我修改了已经上传并运行的迁移,并且在上传新版本之前我忘记了回滚。现在,迁移失败,因为列已经存在(向上)或没有列可以删除(向下)!可能强制从命令行迁移?

是否有可能通过控制台获得迁移以强制其一次更改而不必必须首先在文档中编写:force => true迁移然后再将其删除?

回答

4

回到稳定状态的一种简单方法是在添加列的数据库中进行手动更改,以便回滚工作,然后执行回滚并再次迁移。

+0

我遇到的问题是我使用Heroku,而且我不知道直接访问数据库的方法。使用旧迁移/回滚+新迁移/迁移可能会更容易做一些上传。 – sscirrus 2011-03-20 15:53:16

+1

如果在命令行中执行“heroku rake db:reset”会怎么样?它将删除所有生产数据,但会强制所有迁移,并且可以在备份后恢复用户数据。 – Svilen 2011-04-12 22:23:03

相关问题