繁体   English   中英

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

[英]I need some rails migration help for adding/removing foreign_key

在运行rake db:migrate本地计算机上,从db / schema.rb文件中删除了几个add_foreign_key约束,但是当我在开发服务器导轨上运行相同的命令时,将它们重新添加。我已经检查了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代表ActiveRecord在上一次运行db:schema:dump Rake任务时对数据库的理解。 数据库的结构(如db/schema.rb )可能与您在db/migrate目录中看到的结构完全不匹配:迁移可能已添加和删除,数据库选项已更改,外星人,可能已手动更改(即外部迁移),...

看起来FK已添加到开发数据库中,但未添加到生产数据库中,或者已从生产中删除(或忽略了),因此数据库不同步。 使用mysql CLI工具检查生产数据库,看看是否有FK。 如果他们没有手动或通过仅生产的迁移来同步数据库。 您可能首先需要在生产数据库的精确副本上执行此操作,以便在释放生产系统上的混乱之前,确保所有FK均有效。


如果使用“原始SQL”格式来管理模式,则类似的情况适用于db/structure.sql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM