На комплексном примере показывается, как производить миграции структуры БД и миграции данных. Неплохое введение для новичков, чтобы начать погружение в тему миграций, которую Django пока что обходит стороной.
Совместим с большинством моделей Неимоверно простая и логичная концепция В особых случаях требуется ручное вмешательство :(, но редко, к счастью :)
которого можно получать доступ # как к полям объекта class BaseDict(dict): … # Поле для хранения JSON-объекта. # В run-time значение поля имеет тип BaseDict class BaseDictField(models.TextField): ….
field 'home.comment.headers' ! (this field has class home.fields.BaseDictField) ! South cannot introspect some fields; this is probably because they are custom ! fields. If they worked in 0.6 or below, this is because we have removed the ! models parser (it often broke things). ! To fix this, read http://south.aeracode.org/wiki/MyFieldsDontWork Ээээ, что это такое? Custom field не известен South Надо ему помочь
… ip = models.CharField(max_length=32, blank=True) user_agent = models.CharField(max_length=256, blank=True) + Added field ip on home.Comment + Added field user_agent on home.Comment Created 0002_auto__add_field_comment_ip__add_field _comment_user_agent.py. You can now apply this migration with: ./manage.py migrate home
то надо сделать “фейковую” миграцию, которая ничего не изменяет: $ ./manage.py migrate home 0001 --fake Затем применить остальные миграции (0002 и далее): $ ./manage.py migrate home