Мне нужна помощь по миграции rails для добавления / удаления foreign_key - PullRequest
0 голосов
/ 18 сентября 2018

На моем локальном компьютере, на котором я запускаю rake db:migrate, есть пара ограничений add_foreign_key, удаленных из файла db / schema.rb, но когда я запускаю ту же команду на моих серверах rav, они добавляются обратно. Я проверилВерсии 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)

dev-сервер:

$ 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)

1 Ответ

0 голосов
/ 18 сентября 2018

Прежде всего вам необходимо понять, что db/schema.rb отражает понимание ActiveRecord вашей базы данных в последний раз, когда запускалась задача db:schema:dump Rake.Структура базы данных (как видно из db/schema.rb) может или не может точно соответствовать тому, что вы видите в вашем каталоге db/migrate: миграции можно было добавлять и удалять, параметры базы данных изменялись, инопланетяне, вещи могли быть изменены вручную (т.е. внемиграции), ...

Похоже, что FK были добавлены в вашу базу данных разработки, но не в вашу производственную базу данных, или они были удалены из производства (или проигнорированы), так что ваши базы данных не синхронизированы.Проверьте свою производственную базу данных с помощью инструмента mysql CLI и посмотрите, есть ли там FK;если они не синхронизированы, то ваши базы данных синхронизируются вручную или с производственной миграцией.Возможно, вы сначала захотите сделать это с точной копией вашей производственной базы данных, чтобы вы могли убедиться в том, что все FK действительны, перед тем как развязать хаос в производственной системе.


Аналогичные вещи применимы кdb/structure.sql если вы используете формат «сырой SQL» для управления вашей схемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...