【发布时间】:2020-01-17 06:46:08
【问题描述】:
我有以下架构
class Review(models.Model):
comment_id = models.CharField(max_length=32)
class Comment(models.Model):
comment_id = models.CharField(max_length=32)
uploaded = models.DateTimeField()
注意 1 除了 Review 和 Comment 模型具有完全相同的 comment_id 之外,没有外键
注意 2 存在一对一/唯一关系(每个表中只会出现一次 comment_id)
我想进行选择查询以获取所有 Review 模型,它们的相对 Comment 模型不旧超过 10 天。
【问题讨论】:
-
一开始你为什么不使用
ForeignKey? -
这是遗留代码,数据库架构的更改被阻止...
-
但是将其声明为 Django 模型中的 OneToOneField 不需要对架构进行任何更改。
-
@DanielRoseman:FK 将创建一个 FOREIGN KEY 约束,对于 OneToOne 它可能还会添加一个 UNIQUE 约束。但我同意,就列/...而言,您可以使用
to_field,它不会使用不同的字段类型。 -
CI/CD 不会自动运行数据库迁移。这意味着如果我对 Schema 进行了更改,我必须报告它并且有人运行这些迁移两次(暂存/生产环境)
标签: python django python-3.x postgresql django-queryset