环境

  • Ruby3系列
  • 导轨 7 系列
  • MySQL
    (尝试将数据库从 SQLite 更改为 MySQL 时发生错误)

错误内容

终端
rails db:reset
と実行したら↓

ActiveRecord::MismatchedForeignKey:
↑エラーが発生した

解决方案

终端
rails db:migrate:reset

如果你执行,ActiveRecord::MismatchedForeignKey 就不会出现,它会正常工作✅

原因

rails db:reset

  1. 删除所有表
  2. 根据 schema.rb 创建数据库

    去做。
    这就是为什么,虽然没有创建引用目的地,但是先创建了任意表的引用列,就会出现这个错误!

    和,,,

    rails db:migrate:reset

    1. 删除所有表
    2. 根据迁移文件创建数据库

      这就是为什么,只要引用的表是先创建的,就没有错误!
      * 如果引用列是按照迁移文件先创建的顺序,先读取引用目标表就不会出错。

      在最后

      我写它是因为很少有错误解决文章。
      我希望这篇文章能传达给许多担心的人?


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308633056.html

相关文章: