Отвечая на мой вопрос, чтобы прояснить вопрос (благодаря всем комментариям):
Сначала я сделал пустую миграцию (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
Пользовательская миграция будет запускаться автоматически после основных миграций.
The short answer is that execution runs through the interpreter when method entries are set. I don't think there is anyway around this...
This used to be the case for all code running in debug mode but it was enhanced in 1.4... now HotSpot works for 'full-speed' debugging except in the case of method entries and exits, watchpoints and when single stepping or in methods that contain breakpoints.
2 причины:
то же самое касается профилировщиков и приложений .net
Я бы предположил, что отладчик должен просыпаться при каждом вызове метода, чтобы увидеть, соответствует ли он тому, который был выбран для сбоя. Поскольку он должен проверять каждый вызов метода на предмет возможного совпадения, прежде чем он сможет выполнить, он выполняется значительно медленнее, чем если бы ему не нужно было выполнять все эти проверки.