【问题标题】:How do I fix my database when I've deleted the current migration file?删除当前迁移文件后如何修复数据库?
【发布时间】:2015-05-18 21:00:07
【问题描述】:

我的问题是,我在某个时候进行了一些尖峰操作,并且我使用我在尖峰分支中创建的迁移来迁移我的数据库。然后我切换回我的主分支(我从未提交过迁移)。现在迁移一直在我的数据库中,这使得我无法迁移我的数据库。

当我跑步时

ActiveRecord::Migrator.get_all_versions

在控制台中,我删除的迁移文件时间戳位于此数组中。我想从迁移器中删除这个版本。我也不能删除数据库。

【问题讨论】:

  • 恢复您的迁移并运行rake db:rollback 或转到数据库,查找schema_migrations 表并针对该迁移时间戳运行删除查询。我鼓励您采用第一种方法。

标签: ruby-on-rails ruby postgresql activerecord migration


【解决方案1】:

如果数据库可以被炸毁,那么最快的方法是删除数据库,重新创建它,然后重新应用迁移,步骤如下:

 rake db:drop
 rake db:create db:migrate

如果数据库有有用的信息并且不能被吹走,那就很棘手了。唯一可能的选择是转到数据库级别,并撤消迁移所做的更改。

找出迁移中添加/删除了哪些表/列,然后运行 ​​sql 脚本来反转这些更改。

另外,从schema_migrations表中删除本次迁移对应的特定行,查询如下:

delete from schema_migrations where version = '201503......'

【讨论】:

  • 它不能被丢弃。
  • 好的;使用附加信息编辑答案以帮助您。
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 2015-05-04
  • 2013-10-10
  • 2018-08-03
  • 2011-04-15
相关资源
最近更新 更多