1

У меня есть хранимые процедуры Postgres, от которых зависят мои тесты на селен. В разработке, я загружаю их с линией в скрипте:Каков наилучший способ загрузки хранимых процедур в базу данных модулей тестирования Django?

cat stored_procedures.sql | python manage.py dbshell

Это не работает, когда модульное тестирование, так как свежая база данных создаются с нуля. Как я могу загрузить хранимые процедуры, сохраненные в файле, в тестовую базу данных до запуска модульных тестов?

ответ

2

Думаю, у вас есть несколько способов сделать это. На мой взгляд, лучшее решение - добавить миграцию с помощью собственного SQL. В будущем вам потребуется эта миграция не только на стадии разработки, но и на стадии производства. Таким образом, было бы непонятно развертывать процедуру, если вы будете хранить изменения в БД в нескольких местах.

Другой способ - просто добавить выполнение вашего SQL в setUp метод testCase.

Дополнительная миграция

Вы должны создать новую пустую миграцию ./manage.py makemigrations --empty myApp

Добавьте код SQL в operations список

operations = [ migrations.RunSQL('RAW SQL CODE') ]

+0

Спасибо очень много - это выглядит идеально. –

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