Переход с MariaDB на Mysql - повторяющееся имя ограничения - PullRequest
2 голосов
/ 27 мая 2020

Я пытаюсь перенести базу данных 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. Таким образом, ошибка, которую я вижу, возникает при попытке создать вторую таблицу.

Я хотел бы знать, как лучше всего решить эту проблему, сохранив целостность моей базы данных.

...