如何从项目中删除丢失的迁移?

nip*_*ese 3 rails-migrations ruby-on-rails-4

所以我犯了从我的项目中手动删除迁移文件的愚蠢错误。

他们还在露面db:migrate:status,但我不能够rollback或者destroy他们没有与MigrationID_somename创建新的空文件,然后运行摧毁这些占位符文件。

有没有更好的方法来忘记丢失的迁移文件?

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)
Run Code Online (Sandbox Code Playgroud)

TK-*_*421 6

您可能只使用数据库客户端并从 schema_migrations 表中删除行(如果您保证不再这样做;)。