如何在Rails 3中删除迁移文件
我想删除/删除一个迁移文件。 我将如何去做呢? 我知道在这里有类似的问题,但作为更新,有没有比脚本/销毁更好的方法?
另外,如果我删除/删除迁移,我应该做一个db:reset
或db:drop
吗?
我通常:
- 执行
rake db:migrate VERSION=XXX
在所有环境上rake db:migrate VERSION=XXX
,到我想要删除的版本之前的版本。 - 手动删除迁移文件。
- 如果有未决的迁移(即,我删除的迁移不是最后一个),我只是执行一个新的
rake db:migrate
再次rake db:migrate
。
如果您的应用程序已经在生产或分期中,那么只写另一个破坏您的表或列的迁移就会更安全。
迁移的另一个很好的参考是: http : //guides.rubyonrails.org/migrations.html
另一种删除迁移的方法是:
$ rails d migration SameMigrationNameAsUsedToGenerate
在rake db:migrate
之前使用它,因为数据库中的更改将永远保留:) – 或手动删除更改
从应用程序的主目录运行以下命令:
-
rake db:migrate:down VERSION="20140311142212"
(这里的版本是创build迁移时由rails预置的时间戳,这个操作将恢复由于这个迁移造成的DB更改) -
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上的相应条目。 不漂亮,但它的作品。
我只是有这个相同的问题:
- rails d migration fuu – 这个删除了最后一个时间戳的迁移
- rails d migration fuu – 这个删除了其他的迁移
- 使用git状态来检查不在未跟踪的文件
- 铁轨g迁移fuu
这为我修好了