Миграция приложения Google App Engine с Django 0,96 на Django 1.2

Я скоро начну портировать различные приложения Google App Engine, созданные с версией Django по умолчанию (0.96), на Django 1.2. Обычно я не использую какие-либо специальные модули Django, кроме i18n, для перевода сайтов.

Я планирую пройти обратно несовместимые изменения в Django с 0,96 до 1,0 и различные заметки о выпуске Django. Это текущие заметки о выпуске, доступные между 0,96 и 1,2:

  • 1.2 релиз
    • Примечания к выпуску Django 1.2.5
    • Примечания к выпуску Django 1.2.4
    • Примечания к выпуску Django 1.2.2
    • Примечания к выпуску Django 1.2
  • 1.1 релиз
    • Примечания к выпуску Django 1.1.4
    • Примечания к выпуску Django 1.1.3
    • Примечания к выпуску Django 1.1.2
    • Примечания к выпуску Django 1.1
  • Версия 1.0
    • Примечания к выпуску Django 1.0.2
    • Примечания к выпуску Django 1.0.1
    • Примечания к выпуску Django 1.0

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

У меня есть разные приложения для миграции, но я начну с простого / небольшого приложения, чтобы понять суть этого.

2 ответа

Вместо того, чтобы пытаться выяснить все, что изменилось между Django 0,96 и 1,2, я бы посоветовал написать набор тестов, чтобы охватить поведение вашего пользовательского интерфейса. Вы можете выполнить модульное тестирование каждого из ваших шаблонов с помощью новой среды тестирования или написать полноценные интеграционные тесты на основе браузера с чем-то вроде Selenium.

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

Недавно мне удалось обновить мое довольно большое приложение с опытом, который когда-то был очень легок, зная, что делать. В дополнение к загрузке django 1.2, который был описан выше, мне пришлось внести 3 изменения: 1) изменить импорт i18n на другой, так называемый, lazy import для функции, которую мы вызываем _у i18n есть. 2) Мне пришлось изменить обработку RSS, которой у вас, вероятно, нет. 3) Гуманизированная библиотека больше не используется. Когда я знал, как это сделать, фактическое обновление заняло у меня всего 5 или 10 минут.

Другие вопросы по тегам