版本从4.1升级到4.10时,因为用的polardb数据库所以出现了GTID验证报错问题

版本从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

  1. 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

  2. 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

  3. Backup Configuration File
    Back up to /data/jumpserver/db_backup/config-v4.1.0-ce-2026-10-28_15:57:50.conf

  4. 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
:heavy_check_mark: Container jms_web Removed 7.1s
:heavy_check_mark: Container jms_redis Removed 0.0s
:heavy_check_mark: Container jms_celery Removed 0.0s
:heavy_check_mark: Container jms_chen Removed 10.3s
:heavy_check_mark: Container jms_koko Removed 10.4s
:heavy_check_mark: Container jms_lion Removed 10.3s
:heavy_check_mark: Container jms_core Removed 0.0s
:heavy_check_mark: Network jms_net Removed 0.3s

[+] Running 3/3
:heavy_check_mark: Network jms_net Created 0.1s
:heavy_check_mark: Container jms_core Started 0.3s
:heavy_check_mark: 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!

这个要如何解决