【问题标题】:How do I remove missing migrations from project?如何从项目中删除丢失的迁移?
【发布时间】:2014-12-03 06:34:43
【问题描述】:

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

它们仍然出现在 db:migrate:status 中,但如果不使用 MigrationID_somename 创建新的空文件,然后对这些占位符文件运行销毁,我将无法 rollbackdestroy 它们。

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

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


    【解决方案1】:

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

    【讨论】:

    • 很遗憾我以前不得不这样做。
    • SQL 行是delete from schema_migrations where version = '20141203044501';
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2019-10-20
    相关资源
    最近更新 更多