django-modelstranslation запасное значение исходного поля

У меня есть большое приложение Django, которое активно используется интернет-пользователями. Я пытаюсь добавить django-modeltranslation в одно из моих приложений. В разработке все работает нормально со следующей процедурой:

  1. Установите django-modeltranslation и сделайте правильные изменения модели.
  2. Создайте для этого южную миграцию python manage.py schemamigration myapp --auto
  3. Применить миграцию python manage.py migrate myapp
  4. Запустите команду управления django-modeltranslation, чтобы заполнить язык по умолчанию из исходного поля python manage.py update_translation_fields

У меня проблема между пунктами 3 и 4. Если я запустил миграцию в рабочей среде, то переведенная модель не будет показывать контент пользователю (у меня не может быть простоя), пока я не выполню номер 4, что может занять некоторое время. заканчивать.

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

Спасибо

2 ответа

Решение
  1. Клонируйте производственную базу данных в промежуточную среду.
  2. Применить миграцию в постановке.
  3. Убедитесь, что все работает в постановке.

  4. Тогда либо:

    а. Направьте конфигурацию сети на промежуточную настройку, настройте производство на досуге и переконфигурируйте сеть обратно (0 простоев).

    б. Обновите производственную среду в реальном времени с помощью необходимых пакетов и скопируйте базу данных из промежуточной среды в рабочую среду (минимальное время простоя).

Я смог решить это без необходимости клонировать базы данных. То, что я сделал, было:

  1. Разверните версию с миграцией, но без фактических изменений перевода django-модели.
  2. Запустите миграцию. Это добавит несколько полей к переведенной модели, но код все равно будет указывать на исходное поле.
  3. запустить команду управления python manage.py update_translation_fields, Это клонирует исходные значения поля в языковое поле по умолчанию.
  4. Разверните более новую версию кода с изменениями django-modeltranslation.
Другие вопросы по тегам