销毁无效迁移

时间:2013-05-30 14:37:54

标签: ruby-on-rails ruby migration

这里是Rails的新手。关于迁移的几个问题:

  1. 我创建了一个我不再需要的迁移。我想删除它。正确的命令只是rails destroy migration AddMyColumnToMyModel吗?

  2. 假设我错误地输入了我要销毁的迁移名称...这是当我尝试销毁不存在的迁移时会发生什么。

    $ rails destroy migration Blah
         invoke active_record
         remove migration.rb
    

    它说它正在移除migration.rb ......这是件坏事吗?

1 个答案:

答案 0 :(得分:5)

  1. 当然,这是正确的命令。请注意:如果您通过使用rake db:migrate将更改提交到数据库来实际运行不需要的迁移,请务必先执行此操作:

    rake db:rollback
    

    这样做是为了在最近的迁移中运行down方法。它完全相同:

    rake db:migrate:down VERSION=20130529014413
    

    版本号与最新迁移的版本号相对应。它还可以采用STEP参数,以防您需要回滚一堆迁移而不是只有一个,如下所示:

    rake db:rollback STEP=3
    

    当然,如果您只是生成您不想要的迁移而从未运行过它,则无需回滚任何内容。您可以使用您发布的命令或手动删除相应的文件来删除它。

    来源:http://guides.rubyonrails.org/migrations.html#rolling-back

  2. 别担心,这对你的代码没有做任何事情。