在我的项目中,我希望得到几天过生日的人,我希望找到一个不会对查询施加任何限制的解决方案。
我发现这个solution似乎很有效并适合我的问题。但是现在我有第二个问题是使用django ORM在数据库中创建函数,因为它必须是可移植的并且也可以与测试数据库一起使用。我找不到任何正确的方法来在django中基于它来定义函数和索引。
简而言之,我想使用django在数据库中创建以下函数:
CREATE OR REPLACE FUNCTION indexable_month_day(date) RETURNS TEXT as $BODY$
SELECT to_char($1, 'MM-DD');
$BODY$ language 'sql' IMMUTABLE STRICT;
CREATE INDEX person_birthday_idx ON people (indexable_month_day(dob));
答案 0 :(得分:0)
要回答您的问题,请使用RunSQL将原始SQL插入到迁移中 - 看起来您应该能够将此原始SQL放入迁移文件中,包括将创建自定义索引的函数。因此,运行迁移将在
中创建自定义但不这样做 - 您应该只使用Django索引dob
字段,即
dob = models.DateField(db_index=True)
并使用Django编写查询。