{"id":811,"date":"2025-10-15T09:50:19","date_gmt":"2025-10-15T01:50:19","guid":{"rendered":"https:\/\/www.luyouli.com\/?p=811"},"modified":"2025-10-15T09:50:19","modified_gmt":"2025-10-15T01:50:19","slug":"jumpserver%e5%a0%a1%e5%9e%92%e6%9c%ba%e4%bb%8ev3%e5%8d%87%e7%ba%a7%e5%88%b0v4","status":"publish","type":"post","link":"https:\/\/www.luyouli.com\/?p=811","title":{"rendered":"JumpServer\u5821\u5792\u673a\u4eceV3\u5347\u7ea7\u5230V4"},"content":{"rendered":"\n<p>\u76f4\u63a5\u4f7f\u7528Helm\u65b9\u5f0f\u5347\u7ea7\uff0c\u5728\u521d\u59cb\u5316MySQL\u7684\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u4e24\u4e2a\u62a5\u9519<\/p>\n\n\n\n<p>\u62a5\u9519\u4e00\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/py3\/lib\/python3.11\/site-packages\/httpsig\/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https:\/\/setuptools.pypa.io\/en\/latest\/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.\n  from pkg_resources import get_distribution, DistributionNotFound\n2025-10-14 20:42:30 &#91;INFO] init sqlite db \/opt\/jumpserver\/data\/system\/leak_passwords.db\n2025-10-14 20:42:30 &#91;DEBU] Start subscribe for expire orgs mapping from memory\n2025-10-14 20:42:30 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:42:30 &#91;DEBU] Start subscribe vault change\n2025-10-14 20:42:30 &#91;INFO] Start subscribe for stop job execution\n2025-10-14 20:42:30 &#91;DEBU] Start subscribe setting change\n2025-10-14 20:42:30 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:42:31 Collect static files\n2025-10-14 20:42:31 Collect static files done\n2025-10-14 20:42:31 Check database structure change ...\n2025-10-14 20:42:31 Migrate model change to database ...\nOperations to perform:\n  Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users\nRunning migrations:\n2025-10-14 20:42:33 Perform migrate failed\nTraceback (most recent call last):\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\nMySQLdb.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"\/opt\/jumpserver\/.\/jms\", line 203, in &lt;module>\n    upgrade_db()\n  File \"\/opt\/jumpserver\/.\/jms\", line 137, in upgrade_db\n    perform_db_migrate()\n  File \"\/opt\/jumpserver\/.\/jms\", line 92, in perform_db_migrate\n    raise e\n  File \"\/opt\/jumpserver\/.\/jms\", line 89, in perform_db_migrate\n    management.call_command('migrate')\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/__init__.py\", line 198, in call_command\n    return command.execute(*args, **defaults)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 448, in execute\n    output = self.handle(*args, **options)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 96, in wrapped\n    res = handle_func(*args, **kwargs)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/commands\/migrate.py\", line 349, in handle\n    post_migrate_state = executor.migrate(\n                         ^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 135, in migrate\n    state = self._migrate_all_forwards(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 167, in _migrate_all_forwards\n    state = self.apply_migration(\n            ^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 252, in apply_migration\n    state = migration.apply(state, schema_editor)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/migration.py\", line 130, in apply\n    operation.database_forwards(\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/operations\/models.py\", line 96, in database_forwards\n    schema_editor.create_model(model)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 447, in create_model\n    self.execute(sql, params or None)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 199, in execute\n    cursor.execute(sql, params)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 67, in execute\n    return self._execute_with_wrappers(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 80, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 84, in _execute\n    with self.db.wrap_database_errors:\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/utils.py\", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\ndjango.db.utils.OperationalError: (1050, \"Table 'assets_myasset' already exists\")<\/code><\/pre>\n\n\n\n<p>\u6839\u636e\u62a5\u9519\u4e00\u7684\u4fe1\u606f\uff0c\u786e\u8ba4assets_myasset\u8868\u4e2d\u65e0\u6570\u636e\u540e\uff0c\u5220\u9664assets_myasset\u8868<\/p>\n\n\n\n<p>drop table assets_myasset<\/p>\n\n\n\n<p>\u7ee7\u7eed\u90e8\u7f72<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u62a5\u9519\u4e8c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/py3\/lib\/python3.11\/site-packages\/httpsig\/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https:\/\/setuptools.pypa.io\/en\/latest\/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.\n  from pkg_resources import get_distribution, DistributionNotFound\n2025-10-14 20:48:06 &#91;INFO] init sqlite db \/opt\/jumpserver\/data\/system\/leak_passwords.db\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe for expire orgs mapping from memory\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe vault change\n2025-10-14 20:48:07 &#91;INFO] Start subscribe for stop job execution\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe setting change\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:48:07 Collect static files\n2025-10-14 20:48:07 Collect static files done\n2025-10-14 20:48:07 Check database structure change ...\n2025-10-14 20:48:07 Migrate model change to database ...\nOperations to perform:\n  Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users\nRunning migrations:\n2025-10-14 20:48:10 Perform migrate failed\nTraceback (most recent call last):\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 89, in _execute\n    return self.cursor.execute(sql, params)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\nMySQLdb.OperationalError: (3780, \"Referencing column 'asset_id' and referenced column 'id' in foreign key constraint 'assets_myasset_asset_id_eff8cabd_fk_assets_asset_id' are incompatible.\")\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"\/opt\/jumpserver\/.\/jms\", line 203, in &lt;module>\n    upgrade_db()\n  File \"\/opt\/jumpserver\/.\/jms\", line 137, in upgrade_db\n    perform_db_migrate()\n  File \"\/opt\/jumpserver\/.\/jms\", line 92, in perform_db_migrate\n    raise e\n  File \"\/opt\/jumpserver\/.\/jms\", line 89, in perform_db_migrate\n    management.call_command('migrate')\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/__init__.py\", line 198, in call_command\n    return command.execute(*args, **defaults)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 448, in execute\n    output = self.handle(*args, **options)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 96, in wrapped\n    res = handle_func(*args, **kwargs)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/commands\/migrate.py\", line 349, in handle\n    post_migrate_state = executor.migrate(\n                         ^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 135, in migrate\n    state = self._migrate_all_forwards(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 167, in _migrate_all_forwards\n    state = self.apply_migration(\n            ^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 249, in apply_migration\n    with self.connection.schema_editor(\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 164, in __exit__\n    self.execute(sql)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 199, in execute\n    cursor.execute(sql, params)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 67, in execute\n    return self._execute_with_wrappers(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 80, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 84, in _execute\n    with self.db.wrap_database_errors:\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/utils.py\", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 89, in _execute\n    return self.cursor.execute(sql, params)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\ndjango.db.utils.OperationalError: (3780, \"Referencing column 'asset_id' and referenced column 'id' in foreign key constraint 'assets_myasset_asset_id_eff8cabd_fk_assets_asset_id' are incompatible.\")\n  Applying assets.0005_myasset...\n<\/code><\/pre>\n\n\n\n<p>\u6839\u636e\u4e0a\u8ff0\u62a5\u9519\uff0c\u662f\u7f16\u7801\u95ee\u9898\u5bfc\u81f4\u7684\uff0c\u7efc\u5408\u6392\u67e5\u6d41\u7a0b\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>1\u3001\u6392\u67e5\u8868\u7ed3\u6784<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW CREATE TABLE assets_asset \\G;\n*************************** 1. row ***************************\n       Table: assets_asset\nCreate Table: CREATE TABLE `assets_asset` (\n  `id` char(32) NOT NULL,\n  `address` varchar(767) NOT NULL,\n  `name` varchar(128) NOT NULL,\n  `is_active` tinyint(1) NOT NULL,\n  `created_by` varchar(128) DEFAULT NULL,\n  `date_created` datetime(6) DEFAULT NULL,\n  `comment` longtext NOT NULL,\n  `domain_id` char(32) DEFAULT NULL,\n  `org_id` varchar(36) NOT NULL,\n  `platform_id` int NOT NULL,\n  `connectivity` varchar(16) NOT NULL,\n  `date_verified` datetime(6) DEFAULT NULL,\n  `date_updated` datetime(6) NOT NULL,\n  `updated_by` varchar(128) DEFAULT NULL,\n  `custom_info` json NOT NULL DEFAULT (_utf8mb3'{}'),\n  `gathered_info` json NOT NULL DEFAULT (_utf8mb3'{}'),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `assets_asset_org_id_hostname_13a2c598_uniq` (`org_id`,`name`),\n  KEY `assets_asset_ip_ceeb994c` (`address`),\n  KEY `assets_asset_domain_id_bda54057_fk_assets_domain_id` (`domain_id`),\n  KEY `assets_asset_org_id_f25200c7` (`org_id`),\n  KEY `assets_asset_platform_id_b2b0830c_fk_assets_platform_id` (`platform_id`),\n  CONSTRAINT `assets_asset_domain_id_bda54057_fk_assets_domain_id` FOREIGN KEY (`domain_id`) REFERENCES `assets_domain` (`id`),\n  CONSTRAINT `assets_asset_platform_id_b2b0830c_fk_assets_platform_id` FOREIGN KEY (`platform_id`) REFERENCES `assets_platform` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3\n\n\nSHOW CREATE TABLE assets_myasset \\G;\n*************************** 1. row ***************************\n       Table: assets_myasset\nCreate Table: CREATE TABLE `assets_myasset` (\n  `created_by` varchar(128) DEFAULT NULL,\n  `updated_by` varchar(128) DEFAULT NULL,\n  `date_created` datetime(6) DEFAULT NULL,\n  `date_updated` datetime(6) NOT NULL,\n  `id` char(32) NOT NULL,\n  `name` varchar(128) NOT NULL,\n  `comment` varchar(512) NOT NULL,\n  `asset_id` char(32) NOT NULL,\n  `user_id` char(32) NOT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `assets_myasset_user_id_asset_id_d2fd9886_uniq` (`user_id`,`asset_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci\n<\/code><\/pre>\n\n\n\n<p>\u53d1\u73b0\u4e24\u4e2a\u8868\u7684\u7f16\u7801\u4e0d\u4e00\u81f4\uff0c\u4e00\u4e2a\u662futf8mb3\uff0c\u4e00\u4e2a\u662futf8mb4\uff0c\u5b9e\u9645\u5e94\u8be5\u662futf8mb4\u624d\u5bf9<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>2\u3001\u4fee\u6539\u8868\u7ed3\u6784<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE assets_myasset CONVERT TO CHARACTER SET utf8mb3;<\/code><\/pre>\n\n\n\n<p>\u6539\u5b8c\u4e4b\u540e\u7ee7\u7eed\u90e8\u7f72\u53d1\u73b0\u4f9d\u65e7\u62a5\u9519<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/py3\/lib\/python3.11\/site-packages\/httpsig\/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https:\/\/setuptools.pypa.io\/en\/latest\/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.\n  from pkg_resources import get_distribution, DistributionNotFound\n2025-10-14 20:48:06 &#91;INFO] init sqlite db \/opt\/jumpserver\/data\/system\/leak_passwords.db\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe for expire orgs mapping from memory\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe vault change\n2025-10-14 20:48:07 &#91;INFO] Start subscribe for stop job execution\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe setting change\n2025-10-14 20:48:07 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:48:07 Collect static files\n2025-10-14 20:48:07 Collect static files done\n2025-10-14 20:48:07 Check database structure change ...\n2025-10-14 20:48:07 Migrate model change to database ...\nOperations to perform:\n  Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users\nRunning migrations:\n2025-10-14 20:48:10 Perform migrate failed\nTraceback (most recent call last):\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 89, in _execute\n    return self.cursor.execute(sql, params)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\nMySQLdb.OperationalError: (3780, \"Referencing column 'asset_id' and referenced column 'id' in foreign key constraint 'assets_myasset_asset_id_eff8cabd_fk_assets_asset_id' are incompatible.\")\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"\/opt\/jumpserver\/.\/jms\", line 203, in &lt;module>\n    upgrade_db()\n  File \"\/opt\/jumpserver\/.\/jms\", line 137, in upgrade_db\n    perform_db_migrate()\n  File \"\/opt\/jumpserver\/.\/jms\", line 92, in perform_db_migrate\n    raise e\n  File \"\/opt\/jumpserver\/.\/jms\", line 89, in perform_db_migrate\n    management.call_command('migrate')\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/__init__.py\", line 198, in call_command\n    return command.execute(*args, **defaults)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 448, in execute\n    output = self.handle(*args, **options)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 96, in wrapped\n    res = handle_func(*args, **kwargs)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/commands\/migrate.py\", line 349, in handle\n    post_migrate_state = executor.migrate(\n                         ^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 135, in migrate\n    state = self._migrate_all_forwards(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 167, in _migrate_all_forwards\n    state = self.apply_migration(\n            ^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 249, in apply_migration\n    with self.connection.schema_editor(\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 164, in __exit__\n    self.execute(sql)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 199, in execute\n    cursor.execute(sql, params)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 67, in execute\n    return self._execute_with_wrappers(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 80, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 84, in _execute\n    with self.db.wrap_database_errors:\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/utils.py\", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 89, in _execute\n    return self.cursor.execute(sql, params)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\ndjango.db.utils.OperationalError: (3780, \"Referencing column 'asset_id' and referenced column 'id' in foreign key constraint 'assets_myasset_asset_id_eff8cabd_fk_assets_asset_id' are incompatible.\")\n  Applying assets.0005_myasset...root@jumpserver-master01:~# \nroot@jumpserver-master01:~# \nroot@jumpserver-master01:~# \nroot@jumpserver-master01:~# \nroot@jumpserver-master01:~# kubectl -n jumpserver logs -f dc4-jumpserver-jms-init-db-rq2gk \njumpserver-mysql-svc no init sleep 120s\n\/opt\/py3\/lib\/python3.11\/site-packages\/httpsig\/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https:\/\/setuptools.pypa.io\/en\/latest\/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.\n  from pkg_resources import get_distribution, DistributionNotFound\n2025-10-14 20:51:19 &#91;INFO] init sqlite db \/opt\/jumpserver\/data\/system\/leak_passwords.db\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe for expire orgs mapping from memory\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe vault change\n2025-10-14 20:51:19 &#91;INFO] Start subscribe for stop job execution\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe setting change\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:51:19 Collect static files\n2025-10-14 20:51:20 Collect static files done\n2025-10-14 20:51:20 Check database structure change ...\n2025-10-14 20:51:20 Migrate model change to database ...\nOperations to perform:\n  Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users\nRunning migrations:\n2025-10-14 20:51:22 Perform migrate failed\nTraceback (most recent call last):\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\nMySQLdb.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"\/opt\/jumpserver\/.\/jms\", line 203, in &lt;module>\n    upgrade_db()\n  File \"\/opt\/jumpserver\/.\/jms\", line 137, in upgrade_db\n    perform_db_migrate()\n  File \"\/opt\/jumpserver\/.\/jms\", line 92, in perform_db_migrate\n    raise e\n  File \"\/opt\/jumpserver\/.\/jms\", line 89, in perform_db_migrate\n    management.call_command('migrate')\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/__init__.py\", line 198, in call_command\n    return command.execute(*args, **defaults)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 448, in execute\n    output = self.handle(*args, **options)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 96, in wrapped\n    res = handle_func(*args, **kwargs)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/commands\/migrate.py\", line 349, in handle\n    post_migrate_state = executor.migrate(\n                         ^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 135, in migrate\n    state = self._migrate_all_forwards(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 167, in _migrate_all_forwards\n    state = self.apply_migration(\n            ^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 252, in apply_migration\n    state = migration.apply(state, schema_editor)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/migration.py\", line 130, in apply\n    operation.database_forwards(\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/operations\/models.py\", line 96, in database_forwards\n    schema_editor.create_model(model)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 447, in create_model\n    self.execute(sql, params or None)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 199, in execute\n    cursor.execute(sql, params)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 67, in execute\n    return self._execute_with_wrappers(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 80, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 84, in _execute\n    with self.db.wrap_database_errors:\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/utils.py\", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\ndjango.db.utils.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n  Applying assets.0005_myasset...root@jumpserver-master01:~# kubectl -n jumpserver logs -f dc4-jumpserver-jms-init-db-rq2gk \njumpserver-mysql-svc no init sleep 120s\n\/opt\/py3\/lib\/python3.11\/site-packages\/httpsig\/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https:\/\/setuptools.pypa.io\/en\/latest\/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.\n  from pkg_resources import get_distribution, DistributionNotFound\n2025-10-14 20:51:19 &#91;INFO] init sqlite db \/opt\/jumpserver\/data\/system\/leak_passwords.db\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe for expire orgs mapping from memory\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe vault change\n2025-10-14 20:51:19 &#91;INFO] Start subscribe for stop job execution\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe setting change\n2025-10-14 20:51:19 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:51:19 Collect static files\n2025-10-14 20:51:20 Collect static files done\n2025-10-14 20:51:20 Check database structure change ...\n2025-10-14 20:51:20 Migrate model change to database ...\nOperations to perform:\n  Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users\nRunning migrations:\n2025-10-14 20:51:22 Perform migrate failed\nTraceback (most recent call last):\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\nMySQLdb.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"\/opt\/jumpserver\/.\/jms\", line 203, in &lt;module>\n    upgrade_db()\n  File \"\/opt\/jumpserver\/.\/jms\", line 137, in upgrade_db\n    perform_db_migrate()\n  File \"\/opt\/jumpserver\/.\/jms\", line 92, in perform_db_migrate\n    raise e\n  File \"\/opt\/jumpserver\/.\/jms\", line 89, in perform_db_migrate\n    management.call_command('migrate')\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/__init__.py\", line 198, in call_command\n    return command.execute(*args, **defaults)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 448, in execute\n    output = self.handle(*args, **options)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 96, in wrapped\n    res = handle_func(*args, **kwargs)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/commands\/migrate.py\", line 349, in handle\n    post_migrate_state = executor.migrate(\n                         ^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 135, in migrate\n    state = self._migrate_all_forwards(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 167, in _migrate_all_forwards\n    state = self.apply_migration(\n            ^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 252, in apply_migration\n    state = migration.apply(state, schema_editor)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/migration.py\", line 130, in apply\n    operation.database_forwards(\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/operations\/models.py\", line 96, in database_forwards\n    schema_editor.create_model(model)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 447, in create_model\n    self.execute(sql, params or None)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 199, in execute\n    cursor.execute(sql, params)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 67, in execute\n    return self._execute_with_wrappers(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 80, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 84, in _execute\n    with self.db.wrap_database_errors:\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/utils.py\", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\ndjango.db.utils.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n  Applying assets.0005_myasset...root@jumpserver-master01:~# kubectl -n jumpserver logs -f dc4-jumpserver-jms-init-db-rh5c2 \nroot@jumpserver-master01:~# kubectl -n jumpserver logs -f dc4-jumpserver-jms-init-db-rh5c2 \njumpserver-mysql-svc no init sleep 120s\n\/opt\/py3\/lib\/python3.11\/site-packages\/httpsig\/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https:\/\/setuptools.pypa.io\/en\/latest\/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.\n  from pkg_resources import get_distribution, DistributionNotFound\n2025-10-14 20:55:12 &#91;INFO] init sqlite db \/opt\/jumpserver\/data\/system\/leak_passwords.db\n2025-10-14 20:55:12 &#91;DEBU] Start subscribe for expire orgs mapping from memory\n2025-10-14 20:55:12 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:55:12 &#91;DEBU] Start subscribe vault change\n2025-10-14 20:55:12 &#91;INFO] Start subscribe for stop job execution\n2025-10-14 20:55:12 &#91;DEBU] Start subscribe setting change\n2025-10-14 20:55:12 &#91;DEBU] Start subscribe for expire node assets id mapping from memory\n2025-10-14 20:55:12 Collect static files\n2025-10-14 20:55:13 Collect static files done\n2025-10-14 20:55:13 Check database structure change ...\n2025-10-14 20:55:13 Migrate model change to database ...\nOperations to perform:\n  Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users\nRunning migrations:\n2025-10-14 20:55:15 Perform migrate failed\nTraceback (most recent call last):\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\nMySQLdb.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"\/opt\/jumpserver\/.\/jms\", line 203, in &lt;module>\n    upgrade_db()\n  File \"\/opt\/jumpserver\/.\/jms\", line 137, in upgrade_db\n    perform_db_migrate()\n  File \"\/opt\/jumpserver\/.\/jms\", line 92, in perform_db_migrate\n    raise e\n  File \"\/opt\/jumpserver\/.\/jms\", line 89, in perform_db_migrate\n    management.call_command('migrate')\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/__init__.py\", line 198, in call_command\n    return command.execute(*args, **defaults)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 448, in execute\n    output = self.handle(*args, **options)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/base.py\", line 96, in wrapped\n    res = handle_func(*args, **kwargs)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/core\/management\/commands\/migrate.py\", line 349, in handle\n    post_migrate_state = executor.migrate(\n                         ^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 135, in migrate\n    state = self._migrate_all_forwards(\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 167, in _migrate_all_forwards\n    state = self.apply_migration(\n            ^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/executor.py\", line 252, in apply_migration\n    state = migration.apply(state, schema_editor)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/migration.py\", line 130, in apply\n    operation.database_forwards(\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/migrations\/operations\/models.py\", line 96, in database_forwards\n    schema_editor.create_model(model)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 447, in create_model\n    self.execute(sql, params or None)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/base\/schema.py\", line 199, in execute\n    cursor.execute(sql, params)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 67, in execute\n    return self._execute_with_wrappers(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 80, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 84, in _execute\n    with self.db.wrap_database_errors:\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/utils.py\", line 91, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/utils.py\", line 87, in _execute\n    return self.cursor.execute(sql)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/django\/db\/backends\/mysql\/base.py\", line 75, in execute\n    return self.cursor.execute(query, args)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 179, in execute\n    res = self._query(mogrified_query)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/cursors.py\", line 330, in _query\n    db.query(q)\n  File \"\/opt\/py3\/lib\/python3.11\/site-packages\/MySQLdb\/connections.py\", line 261, in query\n    _mysql.connection.query(self, query)\ndjango.db.utils.OperationalError: (1050, \"Table 'assets_myasset' already exists\")\n  Applying assets.0005_myasset<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>3\u3001\u518d\u6b21\u4fee\u6539\u8868\u7ed3\u6784<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE assets_asset CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;<\/code><\/pre>\n\n\n\n<p>\u6539\u5b8c\u4e4b\u540e\u53d1\u73b0\u6709\u4f9d\u8d56<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ERROR 3780 (HY000): Referencing column 'domain_id' and referenced column 'id' in foreign key constraint 'assets_asset_domain_id_bda54057_fk_assets_domain_id' are incompatible.<\/code><\/pre>\n\n\n\n<p>\u8fd9\u8bf4\u660e\u8fd8\u6709\u5f88\u591a\u7684\u8868\u9700\u8981\u4fee\u6539\uff0c\u4e00\u4e2a\u4e00\u4e2a\u7684\u4fee\u6539\u975e\u5e38\u7684\u4e0d\u73b0\u5b9e<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>4\u3001\u67e5\u8be2\u5b98\u7f51\uff0c\u786e\u8ba4\u5b98\u65b9\u7684\u5904\u7406\u529e\u6cd5<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/jumpserver\/jumpserver\/issues\/14211#issuecomment-2376577808\">https:\/\/github.com\/jumpserver\/jumpserver\/issues\/14211#issuecomment-2376577808<\/a><\/p>\n\n\n\n<p>\u6700\u7ec8\u627e\u5230\u65b9\u6cd5<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"130\" src=\"http:\/\/www.luyouli.com\/wp-content\/uploads\/2025\/10\/ScreenShot_2025-10-15_094553_683.png\" alt=\"\" class=\"wp-image-819\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u5230\u6b64\uff0c\u627e\u5230\u89e3\u51b3\u65b9\u6848\uff0c\u5f00\u59cb\u6d4b\u8bd5\u5e76\u6b63\u5f0f\u4f7f\u7528<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u6700\u7ec8\u89e3\u51b3\u529e\u6cd5\u662f\uff1a<\/p>\n\n\n\n<p>1\u3001\u5907\u4efd\u6570\u636e\u5e93<\/p>\n\n\n\n<p>2\u3001\u5220\u9664\u6570\u636e\u5e93\u91cc\u9762\u7684\u6570\u636e\uff0c\u4f7f\u7528\u65b0\u7248\u672c\u91cd\u65b0\u6784\u5efa\u5821\u5792\u673a<\/p>\n\n\n\n<p>3\u3001\u5220\u9664\u65b0\u6784\u5efa\u7684\u6570\u636e\u5e93\u91cc\u9762\u7684\u6570\u636e<\/p>\n\n\n\n<p>4\u3001\u628a\u5907\u4efd\u91cc\u9762\u7684CHARSET=utf8mb3\u6539\u6210CHARSET=utf8mb4<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -i 's\/CHARSET=utf8mb3\/CHARSET=utf8mb4\/g' jumpserver_utf8mb4.sql<\/code><\/pre>\n\n\n\n<p>5\u3001\u5bfc\u5165\u6570\u636e\u5e93<\/p>\n\n\n\n<p>6\u3001\u5220\u9664\u6240\u6709Pod\uff0c\u8ba9Pod\u81ea\u52a8\u91cd\u5efa<\/p>\n\n\n\n<p>7\u3001\u5821\u5792\u673a\u670d\u52a1\u6062\u590d<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u76f4\u63a5\u4f7f\u7528Helm\u65b9\u5f0f\u5347\u7ea7\uff0c\u5728\u521d\u59cb\u5316MySQL\u7684\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u4e24\u4e2a\u62a5\u9519 \u62a5\u9519\u4e00\uff1a \u6839\u636e\u62a5\u9519\u4e00\u7684\u4fe1\u606f\uff0c\u786e\u8ba4assets [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-811","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"blocksy_meta":[],"views":654,"_links":{"self":[{"href":"https:\/\/www.luyouli.com\/index.php?rest_route=\/wp\/v2\/posts\/811","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.luyouli.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.luyouli.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.luyouli.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.luyouli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=811"}],"version-history":[{"count":10,"href":"https:\/\/www.luyouli.com\/index.php?rest_route=\/wp\/v2\/posts\/811\/revisions"}],"predecessor-version":[{"id":822,"href":"https:\/\/www.luyouli.com\/index.php?rest_route=\/wp\/v2\/posts\/811\/revisions\/822"}],"wp:attachment":[{"href":"https:\/\/www.luyouli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=811"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.luyouli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=811"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.luyouli.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}