1
我正在使用South來管理我的數據庫。似乎每次我改變一些未成年人的模式時,我最終都需要爲遷移做一堆體操。舉例來說,假設我有一個這樣的類:模式遷移和默認值
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的在Entry
到PUB_DATE,爲了只是這個名稱的改變正常執行模式的遷移,我會設置:
default=None, null=True
兩個pubdate的在Entry
並在Comment
的entry
場,否則我會嘗試運行遷移時出現以下情況例外:
The field 'Comment.entry' does not have a default specified, yet is NOT NULL.
那樣我會回去,並採取了默認/空值。有沒有一種不那麼單調乏味的方式來做到這一點,還是在將它們提交給遷移之前,我只需要真正想出我的模型?在開始的階段,如果你沒有任何你關心的數據,建立和拆除數據庫更有意義嗎?如果是這樣,最簡單的方法是什麼?