Как исправить «Невозможно добавить или обновить дочернюю строку: сбой ограничения внешнего ключа» в MySql после развертывания на сервере Linux? - PullRequest
0 голосов
/ 26 апреля 2019

У меня хорошо работает база данных MySql и приложение ASP.NET Core 2.2 на моей локальной машине с Windows.Но когда я публикую их в Ubuntu 18.10 и пытаюсь вставить любую дочернюю запись для моего User, я получаю следующее исключение:

MySql.Data.MySqlClient.MySqlException (0x80004005): невозможно добавить илиобновить дочернюю строку: ограничение по внешнему ключу (library. Books, CONSTRAINT FK_Books_Users_UserId FOREIGN KEY (UserId) ССЫЛКИ users (id))

Досоздавая book, пользователь уже создан и имеет Id.

В обеих таблицах используется механизм InnoDB.

Обе таблицы имеют одинаковое сопоставление.

Эта проблема возникаетдля всех моделей, с которыми у пользователя есть соединения.

Развернутая база данных была заполнена моим локальным дампом базы данных.

Поставщик базы данных: Pomelo.EntityFrameworkCore.MySql

Я думаю, чтоПроблема должна быть в некоторой разнице между Windows и Ubuntu.Но я не знаю, что это может быть, за исключением различной чувствительности к регистру, которая, как оказалось, не является проблемой, поскольку я пробовал разные конфигурации lower_case_table_names.

1 Ответ

0 голосов
/ 27 апреля 2019

Проблема с mysqldump.Как упоминалось в вопросе, локальная база данных была экспортирована, а затем импортирована в производственную среду.Некоторые имена таблиц и столбцов были экспортированы в нижнем регистре.Я не мог найти причину, почему mysqldump делает это.

Решением было переименовать все сломанные имена в допустимые и только затем импортировать дамп.

...