【发布时间】:2014-12-03 06:34:43
【问题描述】:
所以我犯了一个愚蠢的错误,即从我的项目中手动删除迁移文件。
它们仍然出现在 db:migrate:status 中,但如果不使用 MigrationID_somename 创建新的空文件,然后对这些占位符文件运行销毁,我将无法 rollback 或 destroy 它们。
有没有更好的方法来忘记丢失的迁移文件?
me$ rake db:migrate:status
database: [...]/db/development.sqlite3
Status Migration ID Migration Name
--------------------------------------------------
up 20141203044050 ********** NO FILE **********
up 20141203044501 ********** NO FILE **********
me$ rake db:migrate:down VERSION=20141203044501
rake aborted!
ActiveRecord::UnknownMigrationVersionError:
No migration with version number 20141203044501
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/migration.rb:932:in `run'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/migration.rb:818:in `run'
/Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/railties/databases.rake:79:in `block (3 levels) in <top (required)>'
Tasks: TOP => db:migrate:down
(See full trace by running task with --trace)
【问题讨论】:
标签: ruby-on-rails-4 rails-migrations