我使用南遷移我的django模型。南部有一個令人討厭的錯誤。它不會在Postgres數據庫中設置默認值。例如:django南遷移,沒有設置默認
created_at = models.DateTimeField(default = datetime.now)
tag_id = models.PositiveIntegerField(default = 0)
南會添加這些2場數據庫,但未按規定設置的默認值,這需要手動完成。
是否有這個bug補丁的任何?
UPDATE 我已經嘗試設置默認的日期與auto_now_add=True
,但也沒有設置默認值。在字段中添加null=True
將在南部生成的遷移腳本中添加一個db.alter_column
。但只有刪除NOT NULL
約束,不添加默認值。同爲整數字段
如何在Postgres數據庫中執行默認值。我有apis直接與django創建的數據庫進行協商。他們預計違約將到位。 – jerrymouse 2012-04-03 11:12:24
您必須使用自定義SQL來自己修改模式。您可以通過將SQL傳遞給['db.execute'](http://south.aeracode.org/docs/databaseapi.html#db-execute)在South內部執行此操作。 – 2012-04-03 11:46:59
Daniel只是因爲Django試圖阻止用戶在模式級別更改字段默認值,這並不意味着他們不應該能夠。我已經發布了一個實際的解決方案。 – galarant 2013-01-22 03:20:38