From 8bb2f3e74598170f598f98bba71738e7c3df59fb Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Tue, 16 Sep 2025 17:04:44 +0800 Subject: [PATCH] fix: migration bug of plugin config --- pkg/api/http/controller/groups/system.py | 10 +++++++--- ...dbm004_plugin_config.py => dbm008_plugin_config.py} | 2 +- pkg/plugin/connector.py | 4 +++- pkg/utils/constants.py | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) rename pkg/persistence/migrations/{dbm004_plugin_config.py => dbm008_plugin_config.py} (94%) diff --git a/pkg/api/http/controller/groups/system.py b/pkg/api/http/controller/groups/system.py index ee107401..94cf4f6e 100644 --- a/pkg/api/http/controller/groups/system.py +++ b/pkg/api/http/controller/groups/system.py @@ -14,10 +14,14 @@ class SystemRouterGroup(group.RouterGroup): 'version': constants.semantic_version, 'debug': constants.debug_mode, 'enabled_platform_count': len(self.ap.platform_mgr.get_running_adapters()), - 'enable_marketplace': self.ap.instance_config.data['plugin'].get('enable_marketplace', True), + 'enable_marketplace': self.ap.instance_config.data.get('plugin', {}).get( + 'enable_marketplace', True + ), 'cloud_service_url': ( - self.ap.instance_config.data['plugin']['cloud_service_url'] - if 'cloud_service_url' in self.ap.instance_config.data['plugin'] + self.ap.instance_config.data.get('plugin', {}).get( + 'cloud_service_url', 'https://space.langbot.app' + ) + if 'cloud_service_url' in self.ap.instance_config.data.get('plugin', {}) else 'https://space.langbot.app' ), } diff --git a/pkg/persistence/migrations/dbm004_plugin_config.py b/pkg/persistence/migrations/dbm008_plugin_config.py similarity index 94% rename from pkg/persistence/migrations/dbm004_plugin_config.py rename to pkg/persistence/migrations/dbm008_plugin_config.py index fc7a175a..d802927d 100644 --- a/pkg/persistence/migrations/dbm004_plugin_config.py +++ b/pkg/persistence/migrations/dbm008_plugin_config.py @@ -1,7 +1,7 @@ from .. import migration -@migration.migration_class(4) +@migration.migration_class(8) class DBMigratePluginConfig(migration.DBMigration): """插件配置""" diff --git a/pkg/plugin/connector.py b/pkg/plugin/connector.py index da7de024..08a0785a 100644 --- a/pkg/plugin/connector.py +++ b/pkg/plugin/connector.py @@ -73,7 +73,9 @@ class PluginRuntimeConnector: if platform.get_platform() == 'docker' or platform.use_websocket_to_connect_plugin_runtime(): # use websocket self.ap.logger.info('use websocket to connect to plugin runtime') - ws_url = self.ap.instance_config.data['plugin']['runtime_ws_url'] + ws_url = self.ap.instance_config.data.get('plugin', {}).get( + 'runtime_ws_url', 'ws://langbot_plugin_runtime:5400/control/ws' + ) async def make_connection_failed_callback(ctrl: ws_client_controller.WebSocketClientController) -> None: self.ap.logger.error('Failed to connect to plugin runtime, trying to reconnect...') diff --git a/pkg/utils/constants.py b/pkg/utils/constants.py index d67d0549..a307fa2b 100644 --- a/pkg/utils/constants.py +++ b/pkg/utils/constants.py @@ -1,6 +1,6 @@ semantic_version = 'v4.3.0' -required_database_version = 7 +required_database_version = 8 """Tag the version of the database schema, used to check if the database needs to be migrated""" debug_mode = False