Тест Django для использования расширения Postgres без миграции
У меня есть существующий проект, в котором я хочу начать внедрять шаг тестирования. В истории было довольно много миграций данных, и я не хочу тратить усилия на их выполнение в тестовой настройке. Поэтому я отключил 'migrations':
DATABASES['default']['TEST'] = {
'MIGRATE': False,
}
Однако эта БД Postgres использует некоторые расширения
class Meta:
verbose_name = 'PriceBook Cache'
verbose_name_plural = 'PriceBook Caches'
indexes = [
GinIndex(
name="pricebookcache_gin_trgm_idx",
fields=['itemid', 'itemdescription', 'manufacturerpartnumber', 'vendor_id'],
opclasses=['gin_trgm_ops', 'gin_trgm_ops', 'gin_trgm_ops', 'gin_trgm_ops']
),
]
В результате чего при запуске теста возникает ошибка
psycopg2.errors.UndefinedObject: operator class "gin_trgm_ops" does not exist for access method "gin"
Я посмотрел здесь https://docs.djangoproject.com/en/4.1/ref/databases/#migration-operation-for-adding-extensions, где конкретно сказано, что это делается через миграцию, но я ее отключил.
Альтернативой является использование template db, но я не очень хочу этого делать, так как это будет выполняться автоматически в gitlab с помощью контейнера docker, и я не хочу поддерживать еще одно приспособление вне репо проекта.
Так есть ли способ инициализировать базу данных без запуска миграций или возможно ли заставить ее запустить совершенно другую миграцию только для теста?