【问题标题】:Django models DateTimeField index on DateDjango 在 Date 上建模 DateTimeField 索引
【发布时间】:2020-04-01 10:54:46
【问题描述】:

是否可以仅索引 Django 中的 models.DateTimeField 的日期方面?

我似乎在文档中找不到它,我不确定这样做是否有效

class Meta:
    indexes = [
        models.Index(fields=['created_at__year', 'created_at__month', 'created_at__day']),
    ]

【问题讨论】:

  • 你用的是什么数据库?

标签: django django-models


【解决方案1】:

answer 展示了如何在 Postgres 中执行此操作。但是,Django 的索引不支持这个开箱即用。您需要通过migrations.RunSQL自行管理。

migrations.RunSQL(
    "CREATE INDEX foo_created_at_date_idx ON event ((created_at::DATE));",
    "DROP INDEX IF EXISTS foo_created_at_date_idx;",
)

【讨论】:

  • 如果你有ERROR: functions in index expression must be marked IMMUTABLE,请使用this
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 2017-05-23
  • 2016-09-28
  • 2022-01-03
  • 1970-01-01
  • 2013-08-17
相关资源
最近更新 更多