From 05ed5989e3436108f9a7bd443b0f79b7ee407f26 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Tue, 22 Nov 2022 17:06:32 -0700 Subject: Better way to initialise things on setup. --- users/apps.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'users') diff --git a/users/apps.py b/users/apps.py index 86a8eb3..67183ad 100644 --- a/users/apps.py +++ b/users/apps.py @@ -1,14 +1,20 @@ from django.apps import AppConfig -from django.conf import settings +from django.db.models.signals import post_migrate class UsersConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "users" - def ready(self) -> None: - if not settings.IN_TESTS: - # Generate the server actor keypair if needed - from users.models import SystemActor + def data_init(self, **kwargs): + """ + Runs after migrations or flushes to insert anything we need for first + boot (or post upgrade). + """ + # Generate the server actor keypair if needed + from users.models import SystemActor + + SystemActor.generate_keys_if_needed() - SystemActor.generate_keys_if_needed() + def ready(self) -> None: + post_migrate.connect(self.data_init, sender=self) -- cgit v1.2.3