Какова конкретная цель возвращения миграции в Джанго, и безопасно ли работать без нее? - PullRequest
0 голосов
/ 08 октября 2018

В нашем проекте Django мы, как правило, уже внедрили reverse_func, чтобы иметь возможность откатить миграции.

class Migration(migrations.Migration):

    dependencies = []

    operations = [
        migrations.RunPython(forwards_func, reverse_func),
    ]

Мы делаем это потому, что некоторые члены команды делали это с предыдущими проектами, номы никогда не ставили под сомнение необходимость в этом.

Однако со временем кажется, что мы никогда не используем механизм отката.

Наша БД - это объем контейнера Docker.Когда мы переключаемся на другую ветвь, мы обычно заменяем том на прецедентную dev версию, так что мы повторно применяем только самые последние миграции.

Поэтому мой вопрос таков: Неужели мы неправильно поняли цельreverse_func?- Какова цель этого в Dev?- Какова цель этого в продукт?

И безопасно ли работать без них?

1 Ответ

0 голосов
/ 08 октября 2018

в среде разработки reverse_func не очень важно, если что-то пойдет не так, вы можете просто отбросить всю базу данных и воссоздать ее снова

, но для производственной среды это поможет вам вернуть базу данных обратно в рабочее состояниепосле выпуска с ошибкой

после запуска forwards_func в рабочей среде вы можете изменить свою базу данных и обнаружить, что это было плохое изменение, и ваш сайт больше не работает должным образом.обратите внимание, что в вашей базе данных могут быть некоторые новые данные, поэтому, если вы используете резервное копирование, вы можете потерять эти данные

в данном сценарии, если reverse_func может быть очень полезным, ваш reverse_func вернет дБ к предыдущей работеукажите, и вы можете просто повторно развернуть предыдущую версию своего программного обеспечения

, отметив, что иногда reverse_func может быть пустой функцией.просто сказать django, что эта миграция обратима

вы не всегда используете reverse_func, но если что-то идет не так (даже один раз в год), вы понимаете важность написания этого

...