处理南方的PostgreSQL串行字段类型

时间:2011-03-09 20:45:19

标签: django postgresql django-south

我正在使用遗留数据库,它以db方式执行一些有意义的事情,但不确定如何在Django中表示它们以便South和Django本身可以处理它们。

我有一个以PartCode为键的Parts表 我有一个Vendor表,其中VendorCode为键

我有一个零件和供应商的FK的PartsVendor表,以及有关这种关系的其他信息。我正在使用“通过”参数,因此它独立,但它使用PartCode + VendorCode作为复合键,Django不支持。只有在使用南方或像dumpdata这样的功能时,才能看到主键才会遇到问题。但是,这些都是非常重要的问题。

我的临时解决方案是只添加一个_id字段作为AutoField并在Postgres中添加一个串行字段工作正常,但是当使用South时,它会阻塞default = False并且NOT NULL为真。

我已经走上了尝试编写自定义字段的道路,但这似乎是一个死胡同,因为我实际上并没有改变字段类型。

1 个答案:

答案 0 :(得分:3)

在PostgreSQL中,串行类型实际上不是常规类型。

串行的功能是将整数字段设置为序列中下一个数字的默认值。序列存储在数据库的其他位置(也可以手动创建)

我没有对此进行测试,但似乎逻辑串行字段在Django中都表示为Integers。将default属性应用于字段并将其从插入中删除。

我希望有所帮助。 :)