【问题标题】:Issue in rake db:load command while switching to mysql databaserake db:load 命令在切换到 mysql 数据库时出现问题
【发布时间】:2017-08-18 21:46:30
【问题描述】:

我在 Rails 4 中开发一个项目,以前我使用 sqlite3 作为数据库,我切换到 mysql 数据库并更改了 database.yml 文件中的所有配置。我在运行 rake db 时也成功完成了所有迁移:迁移。

i was succesfull in ruinning rake db:dump

sudo gem install mysql

rake db:create

the problem i am facing is while running rake db:schema:load

i am getting the following error while running the above command

ActiveRecord::StatementInvalid: Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails: DROP TABLE `advance_salaries` CASCADE
/home/vh/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.21/lib/mysql2/client.rb:80:in `_query'
/home/vh/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.21/lib/mysql2/client.rb:80:in `block in query'
/home/vh/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.21/lib/mysql2/client.rb:79:in `handle_interrupt'
/home/vh/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.21/lib/mysql2/client.rb:79:in `query'

不知道为什么我会遇到这个问题。请帮助........!!!!!!

【问题讨论】:

  • 回复对我来说非常紧急......所以请帮助......如果有人知道解决方案......
  • 我所有的项目都停止工作了... :/
  • 你能添加你的 schema.rb 吗?您是否尝试仅 rake db:migrate 而不是 schema:load?
  • yes....rake db:schema:load..........但显示同样的错误...!!!
  • create_table "advance_salaries", 强制: :cascade do |t| t.integer "employee_id" t.decimal "advance_amount",精度:15,比例:2 t.string "no_of_instalment" t.decimal "instalment_amount",精度:15,比例:2 t.date "advance_date" t.datetime" created_at", null: false t.datetime "updated_at", null: false t.integer "advance_type_id" t.decimal "interest", 精度: 15, scale: 2 end

标签: mysql ruby-on-rails ruby


【解决方案1】:

当您使用 db:schema:load 时,rails 会清理您的数据库并重建架构,并且您的 db 关系中存在依赖关系,因此会带来错误。

详情可以参考:

ActiveRecord::StatementInvalid: Mysql2::Error: Cannot delete or update a parent row - Rails 4.2.6

【讨论】:

  • 没有帮助........我在sqllite数据库并切换到mysql数据库,我得到这个错误。不知道如何解决这个问题...... ..请帮忙.....
  • 我可以迁移,只有在执行 rake db:load 时出现问题。
  • @puneet 请帮助......如果你知道解决方案......我有很大的问题......我的整个应用程序已经停止............! !!!!
  • 我有一个在 sqlite3 上运行的现有应用程序,所以现在我想将我的整个应用程序从 sqlite 切换到 mysql。我更改了所有配置并且也成功运行了 rake db:migrate.Problem我在运行 rake db:schema:load 时遇到。不知道我的架构文件没有加载。我想将我现有的所有应用程序数据库从 sqlite 备份到 mysql。
  • 这是我的新问题链接...请帮助.........stackoverflow.com/questions/43061570/…
【解决方案2】:

尝试执行以下命令:

rake db:drop
rake db:create
rake db:migrate
rake db:seed

【讨论】:

  • 感谢大家的回复.....我成功地将我的数据库从 sqlite3 更改为 mysql。但现在我的一个文件中出现 strtime 错误。问题的链接是......stackoverflow.com/questions/43061570/…
猜你喜欢
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2011-05-28
相关资源
最近更新 更多