Миграция django с помощью clickhouse

У меня есть проект с двумя базами данных: PostgreSQL и Clickhouse.

Для взаимодействия с Clickhouse я использую либу django-clickhouse-backend. Долгое время я не использовал созданные миграции для этой базы данных, а создавал таблицы с помощью сырого SQL. Теперь пришло время применить все предыдущие миграции, но я столкнулся с проблемой.

Чтобы избежать всех конфликтов, мне пришлось существенно отредактировать существующие файлы миграций, после чего я локально смоделировал и проверил применение этих миграций в существующей базе данных, и все было в порядке. Но когда я попытался применить эти миграции на рабочем сервере, я получил следующую ошибку:

Дело в том, что таблица edl.django_migrations изначально не существует, но она создается после выполнения этой команды.

Я попробовал сделать python mamage.py migrate --fake, но это не помогло.

Я попробовал перенести таблицу django_migrations из PostgreSQL в Clickhouse, но это также не дало результатов.

У меня то же самое на clickhouse версии 4.*. Я перешел на версию 23.7.2.25, и проблема была решена.

Итак, основная проблема заключается в том, что вы не использовали систему миграции Djangos так, как она была задумана. Правильное решение - удалить всю базу данных и начать все сначала.

Если вы действительно хотите продолжать идти по этому пути, вы можете вручную создать строки в таблице django migrations, чтобы сообщить django, что миграции уже применены (что вроде бы так и есть, раз вы сделали это вручную). Тогда вы сможете спасти базу данных.

Вернуться на верх