Загрузка прибора перед запуском на юг - PullRequest
7 голосов
/ 30 октября 2010

Я сделал ошибку при создании своей собственной модели User и пытаюсь восстановить.

Я создал миграцию на юг, которая копирует мои старые модели пользователей и создает django.contrib.auth.models.Пользовательские модели.Чтобы мои текущие пользователи не остались в неведении, я создал несколько тестов юнитов, чтобы убедиться, что все конвертируется должным образом.

Итак, мне нужно проверить миграцию на юг и посмотреть, работает ли она.Для этого мне нужно загрузить данные старого типа User перед запуском миграции.Как мне это сделать?

Ответы [ 2 ]

7 голосов
/ 30 октября 2010

Когда набор тестов запускается через python manage.py test someapp, сначала django создает тестовую базу данных, затем применяет все миграции по порядку, а затем запускает тестовые случаи. Поэтому, если цель состоит в том, чтобы протестировать саму миграцию, вам необходимо загрузить данные фикстуры перед этой миграцией.

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

def forwards(self, orm):
    from django.core import management
    management.call_command('loaddata', 'myfixture.json')
    ... your migration

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

0 голосов
/ 30 октября 2010

Называется миграция данных: http://south.aeracode.org/docs/tutorial/part3.html наслаждайтесь!

...