我使用南迁移我的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