【问题标题】:How do I force drop a table from my schema?如何强制从我的架构中删除表?
【发布时间】:2018-06-28 13:38:55
【问题描述】:

我销毁了一个帐户模型,并进行了多步回滚以删除数据库中的相应帐户迁移。但是,当我执行 rails db:reset 时,会自动添加一个帐户表以及有关待处理迁移的注释:

    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

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

【问题讨论】:

  • 附加信息:Schema 维护帐户表。有些东西似乎卡住了,我不知道为什么。

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


【解决方案1】:

通过以下步骤解决(不完全确定此命令为何有效):

  1. Rake db:migrate:status 以查看没有与方案上的迁移数量相同的文件迁移。
  2. Rake db:migrate:down VERSION=[匹配无文件状态和架构];这失败了,输出是 No migration with version number: XXXX。
  3. Rails 数据库:重置
  4. Rake db:migrate:status(此时没有文件迁移不在列表中)
  5. Rails 数据库:迁移:重置
  6. Rails db:migrate 一切恢复正常。

【讨论】:

    猜你喜欢
    • 2015-08-08
    • 2014-04-05
    • 1970-01-01
    • 2010-10-28
    • 2013-07-19
    • 1970-01-01
    • 2012-04-12
    • 2021-06-05
    • 2021-10-29
    相关资源
    最近更新 更多