gpt4 book ai didi

mysql - 我需要一些 Rails 迁移帮助来添加/删除foreign_key

转载 作者:行者123 更新时间:2023-11-29 16:59:19 26 4
gpt4 key购买 nike

在我运行rake db:migrate的本地计算机上,从 db/schema.rb 文件中删除了几个 add_foreign_key 约束,但是当我在开发服务器上运行相同的命令时,rails 添加了它们回来了。我检查了mysql和rails版本,它们是相同的。有人可以指导/告诉我这里发生了什么吗?

本地机器:

$ mysql --version
mysql Ver 14.14 Distrib 5.7.23, for osx10.13 (x86_64) using EditLine wrapper

$ rails --version
Rails 4.2.6

$ gem list --local mysql2
*** LOCAL GEMS ***
mysql2 (0.4.4)

开发服务器:

$ mysql --version
mysql Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper

$ rails --version
Rails 4.2.6

$ gem list --local mysql2
*** LOCAL GEMS ***
mysql2 (0.4.4)

最佳答案

首先,您需要了解 db/schema.rb 代表上次运行 db:schema:dump Rake 任务时 ActiveRecord 对数据库的理解。数据库的结构(如 db/schema.rb 中所示)可能与您在 db/migrate 目录中看到的完全匹配,也可能不完全匹配:可能已添加和删除迁移,数据库选项更改,外星人,事情可以手动更改(即外部迁移),...

看起来 FK 已添加到您的开发数据库中,但没有添加到您的生产数据库中,或者它们已从生产中删除(或被忽略),因此您的数据库不同步。使用 mysql CLI 工具检查您的生产数据库,看看 FK 是否存在;如果没有,则手动同步您的数据库或仅进行生产迁移。您可能希望首先在生产数据库的精确副本上执行此操作,以便在生产系统造成困惑之前确保所有 FK 均有效。

<小时/>

如果您使用“原始 SQL”格式来管理架构,则类似的情况也适用于 db/struct.sql

关于mysql - 我需要一些 Rails 迁移帮助来添加/删除foreign_key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52391213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com