2015-04-16 5 views
3

Я работаю в Django 1.8 с базой данных Postgres.Сайт Django: Где хранить команды настройки SQL?

Мой сайт содержит большой набор данных, и я хочу создать дополнительные индексы Postgres, чтобы ускорить выполнение определенных запросов (выше и выше того, что вы можете делать с db_index в файле модели). Мне также необходимо создать некоторые материализованные представления.

У меня есть SQL-команды для этого, в сценарии psql.

Мой вопрос заключается в том, где хранить эти SQL-команды, поэтому их легко запустить как часть общей настройки сайта (я хочу упростить развертывание и инициализацию сайта).

Прямо сейчас у меня просто есть README, говорящий «не забудьте запустить setup.psql после создания вашей базы данных !!!» что не является идеальным.

При чтении this article я заметил, что автор предлагает ввести команды создания индекса в файл миграции, поэтому они запускаются как часть начального python manage.py migrate для настройки базы данных.

Разве это разумно? Есть ли недостатки?

ответ

3

Это разумно, вот как я это делаю.

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

0

Возможно, вы используете a post migrate signal для выполнения своих команд. Я никогда не использовал его, но я использовал post syncdb signal в предыдущем проекте, но теперь он устарел. В моем случае там нет недостатков.

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