Каков наилучший подход для переноса одного приложения Django в другое? - PullRequest
0 голосов
/ 10 февраля 2012

Я работаю над проектом Django, где мне нужно использовать South для переноса одного приложения в другое. У меня есть старое внутреннее приложение сообщений, которое я должен заменить другим совершенно другим. Мне было интересно, смогу ли я пройти мимо orm, но старого приложения больше не существует в INSTALLED_APPS, так что нет смысла. Есть ли способ сделать это с помощью процедуры SQL? Я бы хотел, чтобы в то время тип базы данных приложений был независимым.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Приложения Django находятся в пространстве имен базы данных, поэтому вы должны иметь возможность временно установить оба приложения. Я бы разбил его примерно на три миграции:

  1. Схема миграции для добавления нового приложения. Если другие приложения должны иметь отношения с внешним ключом к новому приложению, добавьте их и просто убедитесь, что они все обнуляются.
  2. Миграция данных для обхода объектов модели в старом приложении и создания эквивалентных в новом приложении.
  3. Схема миграции для удаления старого приложения.
0 голосов
/ 11 февраля 2012
  1. schemamigration: python manage.py schemamigration myapp (с обнуляемыми внешними ключами)

  2. datamigration: Django custom sql - мой друг -> https://docs.djangoproject.com/en/dev/topics/db/sql/ сделал мой собственный скрипт переноса данных, сохраняя независимость БД проекта

  3. удаление старой схемы приложения, используя 2.

  4. (необязательно) в обратном направлениисценарий спасения

...