Как создать индекс на основе функции в моей миграции модели Python?

Что касается Монго 3.2, ответы на этот вопрос больше не верны. Новый оператор $ lookup, добавленный в конвейер агрегации, по существу идентичен левому внешнему соединению:

https://docs.mongodb.org/master/reference/operator/aggregation/lookup/# pipe._S_lookup

Из документов:

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}

Конечно, Mongo является не реляционной базой данных, а разработчики стараются рекомендовать конкретные варианты использования для $ lookup, но по крайней мере, начиная с 3.2, соединение теперь возможно с MongoDB.

0
задан Dave 17 March 2019 в 19:26
поделиться

1 ответ

Вы должны создать миграцию данных. Подробнее о них см. В документах

Шаг 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'
        )
    ]
0
ответ дан jozo 17 March 2019 в 19:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: