db_index 在 Django 中作为原始 sql 查询

db_index in django as raw sql query

任何人都可以在 django 中指定为 db_index = True 执行的原始 sql 查询,我有一个模型字段,我需要将其更改为 db_index 为 True,但是我的 rds 服务器由于许多数据库进程并行运行而崩溃,

url = models.CharField(db_index=True,max_length=100, blank=True)

此更改的原始 psql 查询是什么

如果你添加db_index=True到模型然后运行 makemigrations,你可以使用sqlmigrate来显示你的数据库后端的SQL命令.

python manage.py sqlmigrate my_app 000X_migration_name

对于 postgres,这将生成 SQL 类似于以下内容:

BEGIN;
--
-- Alter field url on mymodel
--
CREATE INDEX "myapp_mymodel_url_2e338adc" ON "myapp_mymodel" ("url");
CREATE INDEX "myapp_mymodel_url_2e338adc_like" ON "myapp_mymodel" ("url" varchar_pattern_ops);
COMMIT;