Я начал проект django 1.8, который использует систему миграции.
Как-то по пути все стало беспорядочно, поэтому я удалил папки миграции и таблицу из БД, и теперь я пытаюсь их восстановить, без успеха.
У меня есть три приложения (3 models.py файлы), и модели отражают таблицы ТОЧНО!
Лучший подход, который я нашел до сих пор, заключался в следующем:
- Удалите все папки
migrations. Готово! - Удалить все из таблицы
django_migrations. Готово! - Запустите
python manage.py makemigrations --empty <app>для каждого приложения. Готово! - Запустите
python manage.py migrate --fake. Готово! (хотя он работает, только если я запускаю его после каждой командыmakemigrations.
Теперь я добавляю новое поле, запускаю команду makemigrations, и я получаю следующую ошибку: django.db.utils.OperationalError: (1054, "Unknown column 'accounts_plan.max_item_size' in 'field list'")
Я сжигаю ЧАСЫ по этому поводу. Как h ** l можно инициализировать миграцию, чтобы я мог продолжать работать без прерываний миграции каждый раз?
Почему это так сложно? Почему нет простой однострочной линии: initiate_migrations_from_schema?
EDIT:
Теперь все становится еще более неприятно. Я усекал таблицу django_migrations и удалил всю папку migrations.
Теперь я пытаюсь запустить python manage.py migrate --fake-initial (что-то, что я нашел в документах DEV), так что он настраивает все внутренние приложения Django (auth, session и т.д.), И я получаю: (1054, "Unknown column 'name' in 'django_content_type'").
Теперь этот "столбец" не является реальным столбцом. Это a @property, определенное в приложении Django contenttypes. ЧТО ЗДЕСЬ ПРОИСХОДИТ? Почему он идентифицирует свойство name как реальный столбец?