如何在Rails 3中删除迁移文件

我想删除/删除一个迁移文件。 我将如何去做呢? 我知道在这里有类似的问题,但作为更新,有没有比脚本/销毁更好的方法?

另外,如果我删除/删除迁移,我应该做一个db:resetdb:drop吗?

我通常:

  1. 执行rake db:migrate VERSION=XXX在所有环境上rake db:migrate VERSION=XXX ,到我想要删除的版本之前的版本。
  2. 手动删除迁移文件。
  3. 如果有未决的迁移(即,我删除的迁移不是最后一个),我只是执行一个新的rake db:migrate再次rake db:migrate

如果您的应用程序已经在生产或分期中,那么只写另一个破坏您的表或列的迁移就会更安全。

迁移的另一个很好的参考是: http : //guides.rubyonrails.org/migrations.html

另一种删除迁移的方法是:

 $ rails d migration SameMigrationNameAsUsedToGenerate 

rake db:migrate之前使用它,因为数据库中的更改将永远保留:) – 或手动删除更改

从应用程序的主目录运行以下命令:

  1. rake db:migrate:down VERSION="20140311142212" (这里的版本是创build迁移时由rails预置的时间戳,这个操作将恢复由于这个迁移造成的DB更改)

  2. Run "rails destroy migration migration_name" (migration_name是创build迁移时select的一个用法,从迁移文件名中删除“ timestamp_ ”以获取它)

我们也可以像往常一样迁移

 rake db:migrate:down VERSION=versionnumber 

请参阅Rubyonrailsguide

我们可以用,

 $ rails d migration table_name 

这将删除迁移。

有时我发现自己删除了迁移文件,然后从数据库中删除表schema_migrations上的相应条目。 不漂亮,但它的作品。

看看4.1回滚

http://guides.rubyonrails.org/migrations.html

$ rake db:rollback

我只是有这个相同的问题:

  1. rails d migration fuu – 这个删除了最后一个时间戳的迁移
  2. rails d migration fuu – 这个删除了其他的迁移
  3. 使用git状态来检查不在未跟踪的文件
  4. 铁轨g迁移fuu

这为我修好了