升级3.8.1提示 表结构变更失败!

升级版本:从3.7.2升级到3.8.1
升级方式:离线升级
架构:x86_64
报错信息:
2023-11-11 10:30:50 Collect static files done
2023-11-11 10:30:50 Check database structure change …
2023-11-11 10:30:50 Migrate model change to database …
Operations to perform:
Apply all migrations: accounts, acls, admin, applications, assets, audits, auth, authentication, captcha, common, contenttypes, django_cas_ng, django_celery_beat, notifications, ops, orgs, perms, rbac, sessions, settings, terminal, tickets, users
Running migrations:
Applying assets.0124_auto_20231007_1437…2023-11-11 10:30:50 Perform migrate failed, exit
Traceback (most recent call last):
File “/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py”, line 89, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/backends/mysql/base.py”, line 75, in execute
return self.cursor.execute(query, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 179, in execute
res = self._query(mogrified_query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 331, in _query
self._do_get_result(db)
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 136, in _do_get_result
self._result = result = self._get_result()
^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 363, in _get_result
return self._get_db().store_result()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MySQLdb.IntegrityError: (1062, “Duplicate entry ‘DB2’ for key ‘name’”)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/opt/jumpserver/./jms”, line 88, in perform_db_migrate
management.call_command(‘migrate’)
File “/usr/local/lib/python3.11/site-packages/django/core/management/init.py”, line 198, in call_command
return command.execute(*args, **defaults)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/core/management/base.py”, line 448, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/core/management/base.py”, line 96, in wrapped
res = handle_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/core/management/commands/migrate.py”, line 349, in handle
post_migrate_state = executor.migrate(
^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py”, line 135, in migrate
state = self._migrate_all_forwards(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py”, line 167, in _migrate_all_forwards
state = self.apply_migration(
^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py”, line 252, in apply_migration
state = migration.apply(state, schema_editor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/migrations/migration.py”, line 125, in apply
operation.database_forwards(
File “/usr/local/lib/python3.11/site-packages/django/db/migrations/operations/special.py”, line 193, in database_forwards
self.code(from_state.apps, schema_editor)
File “/opt/jumpserver/apps/assets/migrations/0124_auto_20231007_1437.py”, line 9, in add_db2_platform
platform = platform_cls.objects.create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/manager.py”, line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/query.py”, line 671, in create
obj.save(force_insert=True, using=self.db)
File “/usr/local/lib/python3.11/site-packages/django/db/models/base.py”, line 812, in save
self.save_base(
File “/usr/local/lib/python3.11/site-packages/django/db/models/base.py”, line 863, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/base.py”, line 1006, in _save_table
results = self._do_insert(
^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/base.py”, line 1047, in _do_insert
return manager._insert(
^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/manager.py”, line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/query.py”, line 1791, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/models/sql/compiler.py”, line 1660, in execute_sql
cursor.execute(sql, params)
File “/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py”, line 67, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py”, line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py”, line 84, in _execute
with self.db.wrap_database_errors:
File “/usr/local/lib/python3.11/site-packages/django/db/utils.py”, line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File “/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py”, line 89, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/django/db/backends/mysql/base.py”, line 75, in execute
return self.cursor.execute(query, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 179, in execute
res = self._query(mogrified_query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 331, in _query
self._do_get_result(db)
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 136, in _do_get_result
self._result = result = self._get_result()
^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/MySQLdb/cursors.py”, line 363, in _get_result
return self._get_db().store_result()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.IntegrityError: (1062, “Duplicate entry ‘DB2’ for key ‘name’”)
[ERROR] 表结构变更失败!

大佬们,这种要怎么处理呀

没处理过,蹲一手研发老哥

升级新版本吧 3.8.2解决了这个问题。

之前折腾得伤心了。现在安装的版本还是3.7.2版本。时不时的看看坛友的反馈,再加上实在是忙,短期就不折腾了。留个脚印,以做参考。