【问题标题】:Localhost launch fails due to pending migration error由于挂起的迁移错误,本地主机启动失败
【发布时间】:2018-07-17 18:00:48
【问题描述】:

问题:我无法在本地系统中启动我们正在开发的网站的 localhost。所以我可以玩它并编写自动化测试。早些时候它曾经工作过。

我通常在获取 Origin 之后运行的命令 - 通过 Github 应用程序开发分支

  1. 捆绑安装
  2. rake db:迁移
  3. 导轨 s

现在,rake db:migrate 不工作,给我一个错误

Macs-iMac:mac$ bin/rails db:migrate RAILS_ENV=development

== 20180619223217 CreateCarts: 迁移 ======================================

-- create_table(:carts)

rails 中止了!

StandardError:发生错误,所有后续迁移都已取消:

Mysql2::Error: 表 'carts' 已经存在: CREATE TABLE cartsid bigint NOT NULL AUTO_INCREMENT 主键,user_id int, created_at 日期时间不为空,updated_at 日期时间不为空) ENGINE=InnoDB

/Users/mac/.rvm/gems/ruby-2.4.1/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_查询'

/Users/mac/.rvm/gems/ruby-2.4.1/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `查询中的阻塞'

/Users/mac/.rvm/gems/ruby-2.4.1/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'

/Users/mac/.rvm/gems/ruby-2.4.1/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `查询'

..很多这样的行..

有很多桌子,其中至少有 8 个,就像它说的“购物车”已经存在。

已完成以下故障排除。

  1. 我尝试执行 rake db:reset / rails db:reset - 它给了我类似“您正在尝试执行破坏性操作”这样的错误
  2. 为 Sequelpro 上的 dev 表导入新数据,然后运行 ​​rake db:migrate
  3. 这三个命令都不起作用,同样的“破坏性操作”错误。 rails db:drop, rails db:schema:load, rails db:reset

我进入 db/migrate 文件夹,并在注释中添加了创建这 8 个问题表的行。 这似乎可行,能够启动应用程序,但显然应用程序中的某些菜单不起作用。

在几个月前创建的不同功能分支中切换我在系统中拥有的旧版本的应用程序是有效的。

我该如何解决这个问题?并继续启动应用程序:)

【问题讨论】:

  • 您在尝试rails db:drop 时得到的确切错误是什么?您是否尝试过在谷歌上搜索该错误消息以查看其他人是如何克服它的?

标签: mysql ruby-on-rails


【解决方案1】:

使用rails db:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1in (1)

【讨论】:

  • 它删除并创建除了这 8 个表之外的所有表/它最后列出了这 8 个待处理的迁移。
  • 您可以检查之前是否有任何迁移创建了“carts”表,现在您可以再次创建它,这将导致此迁移错误
  • 以前没有“carts”表创建实例。我在迁移文件夹中发现只有两个“创建表”导致了这个问题。在对创建表的 def..end 之间的行进行了几次注释和取消注释之后,迁移现在通过了。应该如何跳过问题表。
猜你喜欢
  • 2018-07-04
  • 1970-01-01
  • 2017-12-24
  • 2018-09-24
  • 2018-08-03
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 2012-10-07
相关资源
最近更新 更多