2012-01-05 2 views
1

Чтобы вывести свою базу данных в формате JSON файл я обычно делаюДжанго юг меняется мои булевы данные по инициализации

python manage.py dumptdata --indent=4 > mydata.json 

Однако при выполнении следующих двух команд для установки на юг:

python manage.py schemamigration myproj --initial 
python manage.py migrate myproj --fake 

Я заметил что два моих логических элемента в моей таблице для входа были переключены с FALSE на TRUE! Я вижу, что из моего интерфейса GUI, взаимодействующего с базой данных, однако, чтобы более точно сравнить то, что изменилось и получилось повреждено, я хотел бы сравнить json с json, но с помощью юга я больше не могу использовать указанную выше команду, поскольку он сообщает мне

Not synced (use migrations): 
- myproj 

Ниже приведена таблица, в которой были затронутые элементы, я мог бы иметь более затронутые данные, которые я не обнаружил.

class MyConfig(models.Model): 
    name = models.CharField(max_length=64) 
    myConfigName = models.CharField(max_length=64, unique=True) 
    myA = models.ForeignKey(MyA) 
    myB = models.ForeignKey(MyB) 
    myBoolA = models.BooleanField() 
    myBoolB = models.BooleanField() 
    myBoolC = models.BooleanField() 

    class Meta: 
     unique_together = ('name', 'myA', 'myB') 

    def __unicode__(self): 
     return '%s_%s_%s' % (self.myA.name, self.myB.name, self.name) 

ответ

1

schemamigration и migrate --fake не изменять базу данных , У вас есть инструмент initial_data, который можно перезагрузить при миграции? См https://docs.djangoproject.com/en/1.3/howto/initial-data/

Try мигрировать с:

python manage.py migrate --no-initial-data 

см south doc для получения дополнительной информации о параметрах

+0

Благодаря Luc! Я думаю, что это может быть проблемой, что он заново закрепил прибор, как я могу предотвратить переход с перезагрузки оборудования, мне кажется, что это противоречит интуиции, поскольку для меня юг - это способ сохранить мои данные и изменить модели, если он перезагружает светильники, тогда он не сохраняет мои данные ... – user391986

+0

обновите ответ. Не забудьте принять, если это правильный ответ :) – luc

1

Я не думаю, что либо --initial или --fake должны изменить базу данных на всех, поэтому я удивлен, что он будет изменять данные. С точки зрения того, почему вы получаете ошибку «Не синхронизировано (использование миграции)», я думаю, что это вероятно, потому что вы подделали первоначальную миграцию.

Попробуйте снимите перенастройки --fake и повторного применения начальной миграции с

python manage.py migrate --fake zero 
python manage.py migrate 

Затем, вы должны быть в состоянии сделать dumptdata

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