From 23ddd036c3ba31b5fe971dd7773b253e17344e5b Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 15 Jun 2026 16:51:15 +0800 Subject: [PATCH] perf: update config after migrate --- apps/settings/signal_handlers.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/settings/signal_handlers.py b/apps/settings/signal_handlers.py index 438805ebb..fa4ae05fe 100644 --- a/apps/settings/signal_handlers.py +++ b/apps/settings/signal_handlers.py @@ -10,8 +10,9 @@ from django.db.utils import ProgrammingError, OperationalError from django.dispatch import receiver from django.db.models.signals import post_migrate from django.utils.functional import LazyObject -from jumpserver.const import BASE_DIR +from django.apps import apps +from jumpserver.const import BASE_DIR from common.decorators import on_transaction_commit from common.signals import django_ready from common.utils import get_logger, ssh_key_gen @@ -66,6 +67,26 @@ def subscribe_settings_change(sender, **kwargs): setting_pub_sub.subscribe(lambda name: Setting.refresh_item(name)) +def update_site_url(): + site_url = Setting.objects.filter(name='SITE_URL').first() + host_ip = os.environ.get('HOST_IP') + if not host_ip: + return + if not site_url: + site_url = Setting.objects.create(name='SITE_URL', value=f'https://{host_ip}') + elif site_url.value == 'http://127.0.0.1': + site_url.value = f'https://{host_ip}' + site_url.save() + +@receiver(post_migrate) +def after_migrate_some_config(sender, app_config, **kwargs): + last_app = list(apps.get_app_configs())[-1] + if app_config.name == last_app.name: + pass + + update_site_url() + + @receiver(django_ready) def monkey_patch_settings(sender, **kwargs): def monkey_patch_getattr(self, name):