【问题标题】:Handling PostgreSQL serial field type in South在 South 处理 PostgreSQL 串行字段类型
【发布时间】:2011-07-12 05:40:30
【问题描述】:

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

我有一个以 PartCode 作为键的 Parts 表 我有一个 VendorCode 作为键的供应商表

我有一个 PartsVendor 表,其中包含 FK 到 Parts 和 Vendor,以及有关关系的其他信息。我使用“through”参数,所以它独立存在,但它使用 PartCode+VendorCode 作为复合键,Django 不支持。只有在使用 South 或像 dumpdata 这样它想查看主键的函数时,我才会遇到问题。但是,这些都是相当大的问题。

我的临时解决方案是只添加一个 _id 字段作为 AutoField 并在 Postgres 中添加一个串行字段,它工作正常,但是当使用 South 时,它会因 default=False 而 NOT NULL 为 true 的事实而窒息。

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

【问题讨论】:

  • 这可能会有所帮助:link

标签: django postgresql django-south


【解决方案1】:

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

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

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

我希望这会有所帮助。 :)

【讨论】:

    猜你喜欢
    • 2011-02-03
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多