python - Django:分区表的外键
问题描述
我使用架构师对现有表进行分区。
@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"
解决方案
分区的限制之一是您不能有指向它们的外键。一种解决方法是使用自定义约束来模仿 ForeignKey 行为。这个方法可以帮助你。