2012-02-10 3 views
0

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

+1

Разделяют ли они какую-либо одну и ту же столовую конструкцию? Если нет, вы, вероятно, собираетесь либо написать скрипт уровня python с помощью ORM django, либо попробовать некоторые миграции SQL в зависимости от используемой вами базы данных –

+0

На самом деле мне нужно взять некоторые значения из модели старого приложения, которое не будет больше присутствовать в INSTALLED_APPS. Я думаю, что я буду использовать sql, нет выбора. Спасибо – ScotchAndSoda

+0

Если вы найдете какие-либо библиотеки или вещи, которые вам помогут, напишите ответ на вопрос самостоятельно, когда вы закончите объяснять, как вы его решили! –

ответ

2

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

  1. Схематизация для добавления нового приложения. Если другие приложения должны иметь отношения внешних ключей к новому приложению, добавьте их и просто убедитесь, что все они имеют значение NULL.
  2. Датабеляция для перемещения объектов модели в старом приложении и создания эквивалентных в новом приложении.
  3. Схематизация для удаления старого приложения.
+0

Спасибо за этот ответ, последовательный и полезный! – ScotchAndSoda

0
  1. schemamigration: питон manage.py schemamigration MyApp (с обнуляемыми внешними ключами)

  2. datamigration: Django пользовательского SQL мой друг ->https://docs.djangoproject.com/en/dev/topics/db/sql/ сделали мой пользовательские данные миграции сценария по поддержанию проекта DB независимый

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

  4. (по желанию) обратный сценарий спасения

Смежные вопросы