alv*_*spo 107 file-io ruby-on-rails ruby-on-rails-3
我想删除/删除迁移文件.我该怎么做呢?我知道这里有类似的问题,但作为更新,有没有比做脚本/破坏更好的方法?
另外,我应该做db:reset
或者db:drop
如果我删除/删除迁移?
Fáb*_*sta 140
我通常:
rake db:migrate VERSION=XXX
在所有环境中执行a 到我要删除的版本之前的版本.rake db:migrate
再次执行新的迁移.如果您的应用程序已经在生产或登台,那么只编写另一个销毁您的表或列的迁移更安全.
迁移的另一个很好的参考是:http://guides.rubyonrails.org/migrations.html
Ged*_*nas 66
删除迁移的另一种方法:
$ rails d migration SameMigrationNameAsUsedToGenerate
Run Code Online (Sandbox Code Playgroud)
在rake db:migrate
执行之前使用它,因为数据库中的更改将永远保留:) - 或手动删除更改
小智 20
从app的主目录运行以下命令:
rake db:migrate:down VERSION="20140311142212"
(此处版本是创建迁移时由rails预先设置的时间戳.此操作将还原由于此迁移而导致的数据库更改)
Run "rails destroy migration migration_name"
(migration_name是创建迁移时选择的用户.从迁移文件名中删除" timestamp_ "以获取它)
sta*_*her 10
这些答案都不太适合我遇到的问题,因为我想要删除的迁移丢失了:我在其他分支中创建并运行了迁移,然后将其丢弃。问题是当运行迁移时,rails 将版本添加到schema_migrations
数据库的表中。因此,即使它没有在您的数据库结构或模式中列出,rails 也会查找它。您可以通过运行以下命令来显示这些孤立的迁移:
rails db:migrate:status
记下缺少的迁移的版本并进入数据库控制台:
rails dbconsole
现在手动从迁移表中删除版本:
delete from schema_migrations where version='<version>';
你现在应该好了。
我们也可以向下迁移
rake db:migrate:down VERSION=versionnumber
Run Code Online (Sandbox Code Playgroud)
请参阅 Rubyonrailsguide
归档时间: |
|
查看次数: |
116589 次 |
最近记录: |