Ruby on rails 4 如何从项目中删除丢失的迁移?

Ruby on rails 4 如何从项目中删除丢失的迁移?,ruby-on-rails-4,rails-migrations,Ruby On Rails 4,Rails Migrations,因此,我犯了一个愚蠢的错误,从我的项目中手动删除迁移文件 它们仍然显示在db:migrate:status中,但是如果不使用MigrationID\u somename创建新的空文件,然后在这些占位符文件上运行destroy,我就无法回滚或销毁它们 有没有更好的方法来忘记丢失的迁移文件 me$ rake db:migrate:status database: [...]/db/development.sqlite3 Status Migration ID Migration Na

因此,我犯了一个愚蠢的错误,从我的项目中手动删除迁移文件

它们仍然显示在
db:migrate:status
中,但是如果不使用MigrationID\u somename创建新的空文件,然后在这些占位符文件上运行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)
me$rake数据库:迁移:状态
数据库:[……]/db/development.sqlite3
状态迁移ID迁移名称
--------------------------------------------------
截至20141203044050*********无文件**********
截至20141203044501*********无文件**********
me$rake db:migrate:down VERSION=20141203044501
雷克流产了!
ActiveRecord::UnknownMigrationVersionError:
没有版本号为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层)in”
任务:TOP=>db:migrate:down
(通过使用--trace运行任务查看完整跟踪)

您可能只需要使用一个数据库客户端并从schema_migrations表中删除行(如果您承诺不再这样做;)。

我以前不得不这么做。SQL行应该是
从schema_migrations中删除,其中版本='20141203044501'