1

Я следовал this tutorial и добавил возможность PostgreSQL FTS к одной из таблиц моего проекта Django (я использую 1.8.1).Postgres Полнотекстовое поле ввода текста с миграцией Django

В принципе, у меня есть дополнительное поле fts_document в моем столе my_tablemy_app приложение.

Я бы хотел, чтобы базы данных обновлялись без необходимости вручную копировать и вставлять команды в оболочку PostgreSQL на каждой машине. В отличие от учебника, я не реализовал южную часть, так как я получил Юг в противоречии с текущей реализацией, а также выяснил, что Django no имеет native way для выполнения этих миграций.

Я не смог найти какой-либо пример кода, поэтому я застрял и нуждаюсь в помощи. Я не отправляю пример кода, потому что я следил за точной структурой и шагами, как в учебнике.

ответ

1

Вы можете реализовать эквивалент южных миграций, используя операцию RunSQL. Просто создайте пустую миграцию с помощью manage.py makemigration <app_label> --empty, а затем добавить его в operations в новом файле миграция:

operations = [ 
    migrations.RunSQL("CREATE FUNCTION etc.") 
] 

Смотрите documentation для получения полной информации.

+1

спасибо @knbk! В нем указано *, если вы вручную создаете столбец, вы должны передать список, содержащий операцию AddField, чтобы автодетектор по-прежнему имел современное состояние модели (в противном случае при следующем запуске makemigrations он выиграл 't видеть любую операцию, которая добавляет это поле, и поэтому попытается запустить ее снова) * Как объявить новый столбец 'tsvector'? p.s. у вас есть опечатка, это 'makemigrations' – gevra

+0

, даже если я создаю поле с помощью команды RunSQL, но я не могу заставить его работать ... – gevra

 Смежные вопросы

  • Нет связанных вопросов^_^