我在Rails Heroku托管的项目中的迁移文件变得非常混乱,因此我想对其进行合并。我想我可以:
使用heroku pg:backups:capture --app appname
,
添加一个新的迁移文件,删除所有表并在开发和生产环境中运行它,
删除我的所有迁移文件,并在旧的schema.rb中添加包含所有信息的新的,更整洁的迁移文件,并在开发和生产中运行它们,然后
使用heroku pg:backups:restore b001 DATABASE_URL --app appname
恢复我的Heroku数据库。
这正是我所做的。我假设数据库还原将仅使用备份数据库中的记录填充当前数据库。但是,实际发生的是用旧数据库替换了整个当前数据库。这是一个问题,因为我现有的迁移文件现在都被视为新建文件,并且由于要创建的表已经存在而无法运行。这意味着我无法添加任何新迁移,因为现有迁移无法运行。我可以删除所有现有的迁移文件,但这似乎是非常糟糕的做法。
这种情况是否可以解决?理想情况下,我只需要运行迁移,并用备份数据库中的 records 填充数据库-可以吗?