2017-10-19 24 views
1

Quelqu'un peut-il spécifier la requête sql brute s'exécutant pour un db_index = True dans django, j'ai un champ de modèle que je dois modifier avec db_index comme vrai, mais mon serveur rds se bloque depuis beaucoup de processus db fonctionne en parallèle,db_index dans django en tant que requête SQL brute

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

Quelle sera la requête psql première pour cette altération

Répondre

1

Si vous ajoutez db_index=True au modèle puis exécutez makemigrations, vous pouvez utiliser sqlmigrate pour afficher la commande SQL pour votre backend de base de données .

python manage.py sqlmigrate my_app 000X_migration_name 

Pour Postgres, cela va générer SQL similaire à ce qui suit:

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; 
+0

qu'est-ce que '2e338adc' signifie? Est-ce un ID généré ou puis-je utiliser un aléatoire quand j'exécute cette requête –

+0

Merci Alasdair, ça a fonctionné parfaitement –