Django - команда migrate не использует последний файл миграций
У меня создано 5 файлов миграции. Но когда я запускаю ./manage.py migrate
он всегда пытается применить файл миграции "3". Несмотря на то, что последним является файл 5.
Как я могу решить эту проблему?
Я пробовал:
./manage.py makemigrations app_name
./manage.py migrate app_name
./manage.py migrate --run-syncdb
Кроме того, я проверил dbshell, и там уже создана таблица для модели, которая является частью файла миграций 5.
Простая вещь, потому что вы не использовали значение migration file
при выполнении makemigrations
. А значение файла миграции - 0005. Вы должны указать это значение при выполнении makemigrations
.
Используйте эти три команды для миграции:
python manage.py makemigrations appname
python manage.py sqlmigrate appname 0005 #specified that migration file 5 value here
python manage.py migrate
Теперь миграции будут применяться к этому файлу миграции 5, используя его значение 0005
В итоге я удалил файл миграции 3, который подхватывался django, и добавил операции из файла миграции 3 в исходный файл. Затем, когда я запустил migrate <app_name>, он подхватил последний файл (файл 5). Хотя мне пришлось разрешить некоторые конфликты между файлом 3 и предыдущими файлами