Я использую Юг для управления моими базами данных. Кажется, каждый раз, когда я меняю что-то второстепенное в том, как создаются мои модели, мне приходится делать кучу гимнастики для миграции. Например, скажем, у меня есть класс, как это:Миграции схемы и значения по умолчанию
class Entry(models.Model):
title = models.CharField(max_length=80)
author = models.ForeignKey(User)
pubDate = models.DateTimeField()
tags = models.ManyToManyField(Tag)
text = models.TextField()
и еще один класс, который имеет Entry
как ForeignKey:
class Comment(models.Model):
author = models.ForeignKey(User)
entry = models.ForeignKey(Entry)
pubDate = models.DateTimeField()
text = models.TextField()
Это тривиально, но если бы я сделать что-то же просто, как изменить название PubDate к pub_date в Entry
для того, чтобы должным образом выполнить миграцию схемы только для этого изменения имени, я должен был бы установить:
default=None, null=True
как для PubDate в Entry
И на entry
поле в Comment
, в противном случае я бы получаю следующее исключение при попытке запустить миграцию:
The field 'Comment.entry' does not have a default specified, yet is NOT NULL.
ТОГДА я должен вернуться и принять нулевые значения по умолчанию /. Есть ли менее утомительный способ сделать это, или мне просто нужно ДЕЙСТВИТЕЛЬНО придумать свои модели, прежде чем переносить их на миграцию? На начальных этапах, имеет ли смысл создавать и разрывать базу данных, если у вас нет данных, которые вы хотите сохранить? Если да, то какой самый простой способ сделать это?