Jango.db.utils.ProgrammingError: отношение <имя_отношения> уже существует

Я начинаю проект, который основан на некоторых уже существующих реляционных данных. Одна из проблем заключается в том, что данные не в той форме, в которой я хотел бы их получить. Например, boolean поля являются целыми числами и т.д.

По моему мнению, для начала моего проекта было бы неплохо сделать следующее:

  1. Загрузите данные в предоставленной форме (.csv).
  2. .
  3. Создайте базу данных из данных csv, используя pandas dataframe.to_sql method.
  4. Создайте приложение django и загрузите модели из базы данных в models.py, используя manage.py inspectdb.
  5. Измените все поля на те, которые я хочу, и удалите managed = False в каждом class Meta подклассе моего класса models.
  6. Вот и все. Теперь мой проект превратится в обычный проект, как и все остальные. Он будет хранить данные из таблиц, но позволит мне изменять схему, как я захочу (*).
  7. .

То, что я использовал метод dataframe.to_sql, сделало форму данных еще более проблематичной, например, есть не внешние ключи, а просто varchars или integers. Поэтому мне пришлось вручную преобразовать эти поля в ForeignKeys.

Проблема, с которой я столкнулся, заключается в том, что всякий раз, когда я пытаюсь применить миграции, я получаю эту ошибку:

django.db.utils.ProgrammingError: relation <relation_name> already exists

Я также попробовал применить миграции без внесения изменений в какое-либо поле (как это было с inspectdb, только с удалением managed=False), а затем внести изменения. Миграция без изменений была применена без проблем, но следующая миграция с изменениями вызвала ту же ошибку.

Итак, как мне достичь того, что я хочу? Я хочу получить базу данных с существующими данными и преобразовать ее (удалить колонки, добавить колонки, изменить тип данных колонок), как я хочу, используя миграции django.

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