He creado un modelo en Django.
class MyModel(models.Model): features = TextField(blank=True, default='') Hay varias formas posibles de almacenar los datos en el campo de feature . Algunos ejemplos a continuación.
feature1;feature2feature1, feature2feature1,feature2Y así. Necesito crear un índice GIN para ese campo. Probablemente lo haría en postgreSQL de la siguiente manera
CREATE INDEX features_search_idx ON "mymodel" USING gin (regexp_split_to_array("mymodel"."features", E'[,;\\s]+'));¿Sería posible hacer lo mismo mediante una migración?
Sí.
python manage.py makemigration yourapp --empty -n pour_ginmigrations.RunSQL() en el archivo de migración. class Migration(migrations.Migration): dependencies = [ # ... ] operations = [ migrations.RunSQL( sql="""CREATE INDEX features_search_idx ON "mymodel" USING gin (regexp_split_to_array("mymodel"."features", E'[,;\\s]+'));""", reverse_sql=migrations.RunSQL.noop, # TODO: replace me with DROP INDEX ), ]