Извините, если название вопроса вводит в заблуждение, но вот в чем дело.
У меня есть дамп базы данных, которая использовалась со старой версией приложения django (django ‹ 1.7).
У меня есть новая версия кода, использующая django 1.7. И теперь мне нужно обновить какой-то сервер новым кодом, сохранив при этом все данные.
Как я думал, это будет работать:
Восстановите базу данных, запустите новую миграцию (миграции 1.7) с помощью ./manage.py migrate.
Сделанный!
Но когда я запускаю миграции, у меня возникает ошибка «Связь уже существует».
Я знаю, что это происходит, вероятно, потому, что база данных не синхронизирована с историей миграции или что-то в этом роде... Но я не знаю, что делать.
EDIT1 Я чувствую, что единственный способ - вручную создать сценарий миграции или что-то в этом роде, потому что теперь есть способ синхронизировать базу данных с новыми миграциями.
Итак, предположим, что в базе данных есть таблица с именем TABLE и два столбца C1 и C2.
Теперь, когда я переходил с 1.6 на 1.7, я добавил столбец C3. Таким образом, первоначальная миграция выглядит примерно так: «создать таблицу TABLE со COLUMNS C1, C2, C3».
И когда я попытаюсь мигрировать со старой базой данных, я не смогу этого сделать.