Django South "myapp.foo" уже существует "ошибка с начальной миграцией

У меня уже есть приложение с большим количеством записей в базе данных.

class Foo(models.Model):
    value = models.TextField(u"Value")

Для этого я делаю это:

python manage.py schemamigration myapp --initial
python  manage.py migrate myapp

Я меняю модель на такую:

class Foo(models.Model):
    value = models.TextField(u"Value")
    live = models.BooleanField(u"Live", default=False)
    creation_time = models.DateTimeField("Creation Time", auto_now_add=True, null=True, blank=True)

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

python manage.py schemamigration myapp --auto
python  manage.py migrate myapp

я получил django.db.utils.DatabaseError: relation "myapp.foo" already exists ошибка.

Я уже проверил этот вопрос, но --fake, похоже, больше не поддерживается через Юг.

1 ответ

Решение

Ваши модели кажутся мне недействительными, хотя я бы удивился, если бы именно это и стало причиной проблемы.

Похоже, ваш первый аргумент предназначен для verbose_name атрибут, ваша модель, вероятно, должна выглядеть так:

class Foo(models.Model):
    value = models.TextField(verbose_name = u"Value")
    live = models.BooleanField(verbose_name = u"Live", default=False)
    creation_time = models.DateTimeField(verbose_name = u"Creation Time", auto_now_add=True, null=True, blank=True)

(Вы также забыли u перед verbose_name за creation_time).

В то же время, --fake определенно все еще поддерживается (см. документацию), какую ошибку вы получаете, когда вы пытаетесь запустить его?

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