Когда Вы сольете в репо новый код, а затем считаете его на сервере, в нем будут и новые файлы миграций. Но физически структура БД на сервере пока еще останется старой. Поэтому, сразу после обновления кода на сервере, надо выполнить migrate. И тогда структура БД на сервере станет такой же как и на дев компе.
Как всегда перепробовано просто нереальное количество вариантов. Я крайне удивлен что среди них не нашел ни одного правильного.
Я сливаю коды с продакшена вместе с миграциями. И создаю БД на деве с таким же названием как на продашкене.
Затем на деве даю команду makemigtaions и migrate. Создается чистенькая база.
Затем я пишу код. Даю каманду makemigrations, migrate. Все проходит отлично. Переношу код на продакшн вместе с миграциями. И сразу даю команду migrate. Получаю ошибку table exist!
Я уже и удалял у себя файлы миграций. И удалял на продакшене. И базу импортировал то до первой миграции на деве, то после. И как уже только не изгалялся. Ничего не получается. Ткните в инструкцию пожалуйста как люди переносят проект к себе на комп, редактируют его и снова заливают на продакшн? Я понимаю что выгляжу просто нереальным тугодумом, но я оооочень хочу понять как же все-таки работают люди над проектами и наконец-то заняться своим проектом. Хочу код писать! Задолбался перекидывать туда-сюда файлы, сил нет уже.
Я, как мне кажется миллион раз прочитал уже слова многоуважаемого RaD
Качнули медиа и БД с продакшена. Снесли базу, залили скачанный дамп.
Накатили миграции, если есть проблемы, пофиксили их в миграциях. Опять
снесли базу и накатили дамп. Накатили миграции. И так пока всё не
начнёт работать как часы. После выполнения этого условия имеем большой
шанс, что на продакшен наш код накатится в автоматическом режиме без
сбоев.
Если я качнул медиа и БД с продакшена. Качнул файлы. Залил файлы на дев. Снес базу на деве, залил скачанный дамп на дев. То "Накатили миграции" просто не накатываются. При попытке migrate выдается table exist. Но это обходится путем migrate --fake, насколько я понимаю. Теперь если я напишу код, сделаю makemigrations, migrate. И даже если все пройдет хорошо, то при переносе всей папки аппликэйшена на сервер, попытка уже на сервере сделать migrate выдает table exists. И тут если использовать migrate --fake, то нужные таблицы не создадутся, не изменятся и вообще...
На продакшене считываю с гитхаба изменения. Делаю там мигрейт (если
менялась структура базы и есть новые файлы миграций), БД становится
такой какой надо. То есть, все изменения проекта идут по пути - дев
комп -> репозиторий -> продакшн сервер.
Вы какие-то специальные команды используете чтобы БД становилась такой как надо? Я пытался. Даже молился. >_< не помогло. Ведь выдает ошибку что какой-либо table exist. И опять же если использовать migrate --fake, получаем то что нифига в базе не изменится.