如何强制从架构中删除表?

时间:2018-06-28 13:38:56

标签: ruby-on-rails database migration ruby-on-rails-5

我销毁了一个帐户模型,并且完成了多步回滚以删除数据库中相应的帐户迁移。但是,当我使用db:reset时,会自动添加一个account表以及有关即将进行的迁移的注释:

    Dropped database 'db/development.sqlite3'
    Dropped database 'db/test.sqlite3'
    Created database 'db/development.sqlite3'
    Created database 'db/test.sqlite3'
    -- create_table("accounts", {:force=>:cascade})
       -> 0.0131s
    -- create_table("accounts", {:force=>:cascade})
       -> 0.0084s

我这里缺少什么吗?在删除/回滚/重置数据库之前,我删除了其他模型中的关联。

1 个答案:

答案 0 :(得分:0)

通过以下步骤解决(不完全确定为什么执行此命令):

  1. 耙db:migrate:status可以看到没有文件迁移,其编号与方案中的迁移相同。
  2. Rake db:migrate:down VERSION = [与无文件状态和架构匹配];失败,输出为“没有迁移,版本号为XXXX。”
  3. 设置db:reset
  4. Rake db:migrate:status(此时不再在列表中不再进行文件迁移)
  5. 打开db:migrate:reset
  6. 打开db:migrate,一切恢复正常。