Сигнал post_migrate - вызов только один раз после всех миграций

В этом (очень упрощенном) примере мне нужно сделать одну вещь (вызвать do_something_after_all_apps_migrated()) после того, как все приложения мигрировали.

Проблема в том, что сигнал post_migrate вызывается один раз для каждого приложения.

У меня есть одно приложение: after_migrations

apps.py

from django.apps import AppConfig
from django.db.models.signals import post_migrate
from django.dispatch import receiver


class AfterMigrationsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'after_migrations'

    def ready(self):
        @receiver(post_migrate)
        def _post_migrate(sender,**kwargs):
            app_name = kwargs['app_config'].name
            if app_name == 'after_migrations':
                do_something_after_all_apps_migrated() 

Как вы видите, это будет работать, но проблема в том, что не гарантируется, что мое приложение (after_migrations) является последним приложением, которое было перенесено. Это означает, что структура базы данных не гарантирована.

Как я могу вызвать do_something_after_all_apps_migrated() после того, как все мигрировало? Это не обязательно должен быть сигнал.

Вернуться на верх