gpt4 book ai didi

django - 如何在 Python 模型迁移中生成基于函数的索引?

转载 作者:行者123 更新时间:2023-12-02 20:03:43 26 4
gpt4 key购买 nike

我正在使用 Django、Python 3.7 和 PostGres 9.5。为了加快特定查询的速度,我想创建这个功能索引,我通常会在 PostGres 中这样做......

CREATE INDEX my_article_idx ON article (regexp_replace(url, '\?.*$', ''))

然而,在 Django 和自动生成的迁移的世界中,我不确定如何在 models.py 文件中注释我的类,以便自动生成这个基于函数的索引。我的模型中的相关字段看起来像这样......

class Article(models.Model):
...
url = models.TextField(default='', null=False)

最佳答案

您必须创建数据迁移。在 docs 中了解有关它们的更多信息。

第 1 步 - 创建空数据迁移文件

python manage.py makemigrations --empty yourappname

第 2 步 - 将自定义 SQL 添加到迁移中:

# -*- coding: utf-8 -*-
# Generated by Django 1.11.14 on 2018-09-20 08:01
from __future__ import unicode_literals

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('yourapp', '0001_name_of_depending_migration'),
]

operations = [
migrations.RunSQL(
sql="CREATE INDEX my_article_idx ON article (regexp_replace(url, '\?.*$', ''))",
reverse_sql='DROP INDEX my_article_idx ON article'
)
]

关于django - 如何在 Python 模型迁移中生成基于函数的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com