Ошибка миграции Django South "содержит нулевые значения" с полем null = True - PullRequest
3 голосов
/ 11 октября 2010

При добавлении поля для простых миниатюр к модели

easy_thumbnail = ThumbnailerImageField(
    null=True, blank=True, verbose_name=_("Easy_Thumbnails"),
    upload_to="easy_thumbnails",
    resize_source=dict(size=(100, 100), crop="smart"),
)

При выполнении ./manage.py schemamigration test --auto Юг производит следующую миграцию:

def forwards(self, orm):
    # Adding field 'Test.easy_thumbnail'
    db.add_column('test_test', 'easy_thumbnail', self.gf('django.db.models.fields.files.ImageField')(), keep_default=False)
[...]
models = {
    'test.test': {
        'Meta': {'object_name': 'Test'},
        'easy_thumbnail': ('django.db.models.fields.files.ImageField', [], {}),

При выполнении ./manage.py migrate test я получил эту ошибку:

The error is `django.db.utils.IntegrityError: column "easy_thumbnail" contains null values`

1 Ответ

2 голосов
/ 11 октября 2010

Изменение сценария миграции следующим образом решает проблему:

  • Добавление "null = True, blank = True" в db.add_column
  • Добавление '' null ':' True ',' blank ':' True '' в модели ['test.test'] ['easy_thumbnail']

Код:

def forwards(self, orm):
    # Adding field 'Test.easy_thumbnail'
    db.add_column('test_test', 'easy_thumbnail', self.gf('django.db.models.fields.files.ImageField')(null=True, blank=True), keep_default=False)
[...]
models = {
    'test.test': {
        'Meta': {'object_name': 'Test'},
        'easy_thumbnail': ('django.db.models.fields.files.ImageField', [], {'null': 'True', 'blank': 'True'}),
...