版本从4.1升级到4.10时,因为用的polardb数据库所以出现了GTID验证报错问题
root@hz1v85:/opt/jumpserver-ce-v4.10.19-x86_64# ./jmsctl.sh upgrade
Are you sure you want to update the current version to v4.10.19-ce ? [Y/n]: y
complete
-
Loading Docker Image
redis:7.4.10-bookworm <= images/redis:7.4.10-bookworm.zst
Loaded image: redis:7.4.10-bookworm
Docker image not found: images/mariadb:10.6.zst
jumpserver/core:v4.10.19-ce <= images/core:v4.10.19-ce.zst
411a86676185: Loading layer [==================================================>] 81.07MB/81.07MB
7e6a39b645ae: Loading layer [==================================================>] 12.3MB/12.3MB
72a7471afe64: Loading layer [==================================================>] 38.44MB/38.44MB
d1fea40c1545: Loading layer [==================================================>] 5.12kB/5.12kB
5f1c28eba9d6: Loading layer [==================================================>] 164.6MB/164.6MB
b3991b5a3bab: Loading layer [==================================================>] 600.6MB/600.6MB
7aab41feeafb: Loading layer [==================================================>] 61.61MB/61.61MB
90942cca6c90: Loading layer [==================================================>] 3.072kB/3.072kB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
The image jumpserver/core:v4.10.19-ce already exists, renaming the old one with ID sha256:8551b2c6e3a936ea3c788f5ff079f9f0d0c5495ecf15834e3ac6dea47a40f97f to empty string
Loaded image: jumpserver/core:v4.10.19-ce
jumpserver/koko:v4.10.19-ce <= images/koko:v4.10.19-ce.zst
31631a95db7c: Loading layer [==================================================>] 123.9MB/123.9MB
2a29d4956d2e: Loading layer [==================================================>] 24.94MB/24.94MB
c044de6c24eb: Loading layer [==================================================>] 2.048kB/2.048kB
7b5e665559cc: Loading layer [==================================================>] 52.22kB/52.22kB
5d3043bebeb6: Loading layer [==================================================>] 318.5MB/318.5MB
a03e59d2cb74: Loading layer [==================================================>] 117.4MB/117.4MB
78b8d2ac9fe1: Loading layer [==================================================>] 228.4kB/228.4kB
915dd0682680: Loading layer [==================================================>] 121.7MB/121.7MB
The image jumpserver/koko:v4.10.19-ce already exists, renaming the old one with ID sha256:baa32839a6a2ceba28271a17b9ab312bc83c395d323d53349d2c55cf274d377c to empty string
Loaded image: jumpserver/koko:v4.10.19-ce
jumpserver/lion:v4.10.19-ce <= images/lion:v4.10.19-ce.zst
2a72724e2f9f: Loading layer [==================================================>] 729.6kB/729.6kB
113f027a7240: Loading layer [==================================================>] 51.15MB/51.15MB
d2b018129412: Loading layer [==================================================>] 2.048kB/2.048kB
98b5695d5abe: Loading layer [==================================================>] 6.124MB/6.124MB
db3e9c1ee45d: Loading layer [==================================================>] 1.744MB/1.744MB
8c443991c204: Loading layer [==================================================>] 70.23MB/70.23MB
1d83abc754da: Loading layer [==================================================>] 3.584kB/3.584kB
4cacb92d9b65: Loading layer [==================================================>] 3.584kB/3.584kB
9aeb64ffa82f: Loading layer [==================================================>] 9.216kB/9.216kB
852c8ccc8656: Loading layer [==================================================>] 9.216kB/9.216kB
The image jumpserver/lion:v4.10.19-ce already exists, renaming the old one with ID sha256:fa18182fcefffaa8edfb2d10faf57ad9c0f3b47e69cadafe1ba66f7493d47034 to empty string
Loaded image: jumpserver/lion:v4.10.19-ce
jumpserver/chen:v4.10.19-ce <= images/chen:v4.10.19-ce.zst
a1f0e38b3b13: Loading layer [==================================================>] 243.3MB/243.3MB
ba6be44f6a9d: Loading layer [==================================================>] 2.048kB/2.048kB
00207cbb1083: Loading layer [==================================================>] 45.55MB/45.55MB
8f2efd19f46a: Loading layer [==================================================>] 89.24MB/89.24MB
e34ed8ee0f14: Loading layer [==================================================>] 3.584kB/3.584kB
e12e962e6196: Loading layer [==================================================>] 20.9MB/20.9MB
0a22b7dec794: Loading layer [==================================================>] 3.584kB/3.584kB
The image jumpserver/chen:v4.10.19-ce already exists, renaming the old one with ID sha256:a23b4a445b470a921ce256548d16abf79b33a22dc64cd9b1c3f8a4636b860d35 to empty string
Loaded image: jumpserver/chen:v4.10.19-ce
jumpserver/web:v4.10.19-ce <= images/web:v4.10.19-ce.zst
c15ef26de715: Loading layer [==================================================>] 92.59MB/92.59MB
f5d2fb355c28: Loading layer [==================================================>] 3.584kB/3.584kB
3034d61d34fe: Loading layer [==================================================>] 4.608kB/4.608kB
f6999c63aea7: Loading layer [==================================================>] 2.56kB/2.56kB
e57b0ed3bcf2: Loading layer [==================================================>] 5.12kB/5.12kB
5b5886b18374: Loading layer [==================================================>] 7.168kB/7.168kB
babc6dc5d1df: Loading layer [==================================================>] 43.83MB/43.83MB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
3d0ea1d41999: Loading layer [==================================================>] 14.72MB/14.72MB
2f851f4ef655: Loading layer [==================================================>] 11.25MB/11.25MB
e428a69a4b80: Loading layer [==================================================>] 3.584kB/3.584kB
700fdf568fce: Loading layer [==================================================>] 4.096kB/4.096kB
d41df03eb87f: Loading layer [==================================================>] 12.29kB/12.29kB
5184e2b96302: Loading layer [==================================================>] 3.584kB/3.584kB
fc9acbc29669: Loading layer [==================================================>] 4.096kB/4.096kB
27bc8f79b08e: Loading layer [==================================================>] 7.68kB/7.68kB
The image jumpserver/web:v4.10.19-ce already exists, renaming the old one with ID sha256:458d8bdf7b038e17a1f08a1973117ed61508639def4687d4fe5fa7605aa71de5 to empty string
Loaded image: jumpserver/web:v4.10.19-ce
complete -
Backup database
Backing up…
[SUCCESS] Backup succeeded! The backup file has been saved to: /data/jumpserver/db_backup/jumpserver-v4.1.0-ce-2026-10-28_15:57:18.sql.gz -
Backup Configuration File
Back up to /data/jumpserver/db_backup/config-v4.1.0-ce-2026-10-28_15:57:50.conf -
Apply database changes
Changing database schema may take a while, please wait patiently
Detected that the JumpServer container is running. Do you want to close the container and continue to upgrade? [Y/n]: y
[+] Running 8/8
Container jms_web Removed 7.1s
Container jms_redis Removed 0.0s
Container jms_celery Removed 0.0s
Container jms_chen Removed 10.3s
Container jms_koko Removed 10.4s
Container jms_lion Removed 10.3s
Container jms_core Removed 0.0s
Network jms_net Removed 0.3s
[+] Running 3/3
Network jms_net Created 0.1s
Container jms_core Started 0.3s
Container jms_redis Started 0.3s
Waiting for redis to be healthy…
Waiting for redis to be healthy…
/opt/py3/lib/python3.14/site-packages/django/db/backends/utils.py:98: RuntimeWarning: Accessing the database during app initialization is discouraged. To fix this warning, avoid executing queries in AppConfig.ready() or when your app modules are imported.
warnings.warn(self.APPS_NOT_READY_WARNING_MSG, category=RuntimeWarning)
2026-10-28 15:58:23 Collect static files
2026-10-28 15:58:23 Collect static files done
2026-10-28 15:58:23 Check database structure change …
2026-10-28 15:58:23 Migrate model change to database …
Operations to perform:
Apply all migrations: accounts, acls, admin, assets, audits, auth, authentication, captcha, contenttypes, django_cas_ng, django_celery_beat, labels, notifications, oauth2_provider, ops, orgs, perms, rbac, reports, sessions, settings, terminal, tickets, users
Running migrations:
Applying assets.0009_automationexecution_result_and_more…2026-10-28 15:58:23 Perform migrate failed
Traceback (most recent call last):
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/utils.py”, line 105, in _execute
return self.cursor.execute(sql, params)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/mysql/base.py”, line 76, in execute
return self.cursor.execute(query, args)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/MySQLdb/cursors.py”, line 179, in execute
res = self._query(mogrified_query)
File “/opt/py3/lib/python3.14/site-packages/MySQLdb/cursors.py”, line 330, in _query
db.query(q)
~~~~~~~~^^^
File “/opt/py3/lib/python3.14/site-packages/MySQLdb/connections.py”, line 261, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
MySQLdb.OperationalError: (3775, ‘Statement violates GTID consistency: ALTER TABLE … ADD COLUMN … with expression as DEFAULT.’)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “/opt/jumpserver/./jms”, line 213, in
upgrade_db()
~~~~~~~~~~^^
File “/opt/jumpserver/./jms”, line 146, in upgrade_db
perform_db_migrate()
~~~~~~~~~~~~~~~~~~^^
File “/opt/jumpserver/./jms”, line 94, in perform_db_migrate
raise e
File “/opt/jumpserver/./jms”, line 91, in perform_db_migrate
management.call_command(‘migrate’)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/core/management/init.py”, line 194, in call_command
return command.execute(*args, **defaults)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/core/management/base.py”, line 464, in execute
output = self.handle(*args, **options)
File “/opt/py3/lib/python3.14/site-packages/django/core/management/base.py”, line 111, in wrapper
res = handle_func(*args, **kwargs)
File “/opt/py3/lib/python3.14/site-packages/django/core/management/commands/migrate.py”, line 353, in handle
post_migrate_state = executor.migrate(
targets,
…<3 lines>…
fake_initial=fake_initial,
)
File “/opt/py3/lib/python3.14/site-packages/django/db/migrations/executor.py”, line 135, in migrate
state = self._migrate_all_forwards(
state, plan, full_plan, fake=fake, fake_initial=fake_initial
)
File “/opt/py3/lib/python3.14/site-packages/django/db/migrations/executor.py”, line 167, in _migrate_all_forwards
state = self.apply_migration(
state, migration, fake=fake, fake_initial=fake_initial
)
File “/opt/py3/lib/python3.14/site-packages/django/db/migrations/executor.py”, line 255, in apply_migration
state = migration.apply(state, schema_editor)
File “/opt/py3/lib/python3.14/site-packages/django/db/migrations/migration.py”, line 132, in apply
operation.database_forwards(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.app_label, schema_editor, old_state, project_state
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/opt/py3/lib/python3.14/site-packages/django/db/migrations/operations/fields.py”, line 110, in database_forwards
schema_editor.add_field(
~~~~~~~~~~~~~~~~~~~~~~~^
from_model,
^^^^^^^^^^^
field,
^^^^^^
)
^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/mysql/schema.py”, line 113, in add_field
super().add_field(model, field)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/base/schema.py”, line 775, in add_field
self.execute(sql, params or None)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/base/schema.py”, line 204, in execute
cursor.execute(sql, params)
~~~~~~~~~~~~~~^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/utils.py”, line 79, in execute
return self._execute_with_wrappers(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
sql, params, many=False, executor=self._execute
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/utils.py”, line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/utils.py”, line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/db/utils.py”, line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/utils.py”, line 105, in _execute
return self.cursor.execute(sql, params)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/django/db/backends/mysql/base.py”, line 76, in execute
return self.cursor.execute(query, args)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File “/opt/py3/lib/python3.14/site-packages/MySQLdb/cursors.py”, line 179, in execute
res = self._query(mogrified_query)
File “/opt/py3/lib/python3.14/site-packages/MySQLdb/cursors.py”, line 330, in _query
db.query(q)
~~~~~~~~^^^
File “/opt/py3/lib/python3.14/site-packages/MySQLdb/connections.py”, line 261, in query
_mysql.connection.query(self, query)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
django.db.utils.OperationalError: (3775, ‘Statement violates GTID consistency: ALTER TABLE … ADD COLUMN … with expression as DEFAULT.’)
[ERROR] Failed to change the table structure!
这个要如何解决