Весенняя загрузка автоматически загружалась и запускала мой файл schema.sql каждый раз, когда запускался мой интеграционный тест.
Проблема заключается в следующем:
Это дает мне ошибку
Не удается удалить или обновить родительскую строку: ограничение внешнего ключа завершается с ошибкой.
Я могу импортировать этот файл с командой mysql
без проблем, поэтому я подозреваю, что Spring boot не использует команду mysql
для запуска скрипта.
schema.sql создается mysqldump. Ничего не изменилось.
Он работает после того, как я сделал следующее "обходное решение":
1. Избавьтесь от определенных ключевых слов/команд MySQL, таких как /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
2. переустановите create table
так, чтобы таблицы были созданы в правильном порядке, чтобы избежать ошибок ограничения внешнего ключа.
Вопрос: Как сделать загрузку Spring для импорта моего файла schema.sql, такого как mysql? Было бы неплохо, если бы я мог просто mysqldump
файл mysqldump
и использовать его для тестирования вместо использования некоторых "хакерских обходных решений".
Спасибо!
Добавить в начало файла.sql
SET FOREIGN_KEY_CHECKS=0;
и в конце
SET FOREIGN_KEY_CHECKS=1;
Команда отключает проверку внешних ключей и возвращает их обратно.
Dump просто вставляет все строки содержимого таблицы, но связанная таблица еще не вставлена.
Восстановление MYSQL из дампа имеет линии автоматически.
mysqldump
перед тестированием без каких-либо изменений вручную?