Django:分区表的外键

时间:2018-09-12 11:59:35

标签: python django postgresql django-models database-partitioning

我已使用architect对现有表进行分区。

@architect.install('partition', type='range', subtype='integer', constraint='100', column='id')
class Project(models.Model):
    name = models.CharField(max_length=150)

项目模型用作另一个模型的外键。

class ProjectChangeLog(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)

分区后,我无法添加任何ProjectChangeLog对象。它说:

IntegrityError: insert or update on table "logging_projectchangelog" violates foreign key constraint 
DETAIL:  Key (project_id)=(231) is not present in table "project_project"

1 个答案:

答案 0 :(得分:0)

分区的局限性之一是您不能有指向它们的外键。一种解决方法是使用自定义约束来模仿ForeignKey行为。 method可以为您提供帮助。