在South中处理PostgreSQL的序列字段类型

5
我正在使用一个遗留数据库,它以一种数据库的方式执行了一些操作,但不确定如何在Django中表示它们,以便South和Django本身可以处理它们。 我有一个Parts表,PartCode作为键,我有一个Vendor表,VendorCode作为键。我有一个PartsVendor表,它具有指向Parts和Vendor的FK,以及关于关系的其他信息。我使用"through"参数使其独立存在,但它使用PartCode+VendorCode作为复合键,在Django中不支持这样的操作。只有在使用South或诸如dumpdata之类希望看到主键的函数时,我才会遇到问题。然而,这些是相当大的问题。我的临时解决方案是添加一个AutoField作为_id字段,并在Postgres中添加一个序列字段,这很好用,但当使用South时,它会因默认值为False且NOT NULL为true而出现问题。我已经尝试编写自定义字段,但这似乎是走投无路的,因为我实际上没有改变任何关于字段类型的东西。

这可能会有所帮助:[链接](http://code.djangoproject.com/wiki/MultipleColumnPrimaryKeys) - Ketema
1个回答

3
在PostgreSQL中,序列类型实际上不是常规类型。 serial的作用是将整数字段设置为序列中下一个数字的默认值。该序列存储在数据库的其他位置(也可以手动创建)。我没有测试过,但似乎逻辑上serial字段都应表示为Django中的整数。将default属性应用于字段并在插入时将其省略。希望这能帮到你 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接