有一个已应用并提交到 github 的迁移。它包含一个自定义代码,这意味着它要“向下”。实际上,“down”方法是空的。我可以删除一个db,没关系,因为里面的数据不多。
现在我需要在这次迁移中改变它,具体来说,我需要完全改变它。所以我需要以某种方式撤消它,提交到 github 并允许我们命令的其他成员应用它。
我怎么做?
请注意,这不是最后一次迁移,在此之后还有其他迁移。
有一个已应用并提交到 github 的迁移。它包含一个自定义代码,这意味着它要“向下”。实际上,“down”方法是空的。我可以删除一个db,没关系,因为里面的数据不多。
现在我需要在这次迁移中改变它,具体来说,我需要完全改变它。所以我需要以某种方式撤消它,提交到 github 并允许我们命令的其他成员应用它。
我怎么做?
请注意,这不是最后一次迁移,在此之后还有其他迁移。
我认为您最好的选择是编写一个新的迁移来执行撤消并推送它。正如我所收集的,迁移是关于更改现有数据库,而不是创建新数据库 - 这就是为什么您在两个地方进行更改 - 迁移和 db/schema.rb - 有些人实际上建议删除旧迁移。
You can create a new migration or change the that migration and before apply it do a rollback. Use VERSION as said by the docs:
rake db:migrate # Migrate the database (options: VERSION=x, VERBOSE=false).
rake db:migrate VERSION=x
change your migration file
git commit
rake db:migrate