Отвечая на мой вопрос, чтобы прояснить вопрос (спасибо за все комментарии):
Сначала я сделал пустую миграцию (python manage.py makemigrations --empty app_name
)
Затем к операциям добавьте SQL функции:
migrations.RunSQL(
('CREATE OR REPLACE FUNCTION my_function() ...'),
('DROP FUNCTION IF EXISTS my_function();')
)
Две строки предназначены для перенастройки и перенастройки SQL, подробнее здесь:
https://docs.djangoproject.com/en/2.1/ref/migration-operations/#runsql
Пользовательская миграция будет запускаться автоматически после основных миграций.