Я пытаюсь перенести базу данных MariaDB на MySQL. Для этого я создал mysqldump
базы данных MariaDB и пытаюсь импортировать в MySQL. (Это делается с официальным docker контейнером mysql:latest
).
Я получаю следующую ошибку при импорте в MySQL:
ERROR 3822 (HY000) at line 172: Duplicate check constraint name 'CONSTRAINT_1'.
Если я посмотрю на mysqldump
файл Я понимаю, почему это происходит. Все логические столбцы в моей базе данных имеют ограничения, которые выглядят примерно так:
CONSTRAINT `CONSTRAINT_1` CHECK (`bool_col_1` in (0,1))
CONSTRAINT `CONSTRAINT_2` CHECK (`bool_col_2` in (0,1))
CONSTRAINT `CONSTRAINT_3` CHECK (`bool_col_3` in (0,1))
Эти ограничения не были явно созданы мной, а неявно Flask -SQLAlchemy (я думаю).
Обратите внимание, как увеличиваются имена ограничений, начиная с CONSTRAINT_1
. Проблема в том, что каждая таблица начинает увеличивать свои имена ограничений, начиная с CONSTRAINT_1
. Таким образом, ошибка, которую я вижу, возникает при попытке создать вторую таблицу.
Я хотел бы знать, как лучше всего решить эту проблему, сохранив целостность моей базы данных.