mirror of https://github.com/jumpserver/jumpserver
perf: 优化迁移
parent
b69ed8cbe9
commit
3d934dc7c0
|
@ -1,7 +1,8 @@
|
||||||
# Generated by Django 3.1.6 on 2021-06-04 16:46
|
# Generated by Django 3.1.6 on 2021-06-04 16:46
|
||||||
|
import uuid
|
||||||
from django.db import migrations, models, transaction
|
from django.db import migrations, models, transaction
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
|
from django.db import IntegrityError
|
||||||
from django.db.models import F
|
from django.db.models import F
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +16,7 @@ def migrate_admin_user_to_system_user(apps, schema_editor):
|
||||||
for admin_user in admin_users:
|
for admin_user in admin_users:
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
for attr in [
|
for attr in [
|
||||||
'id', 'org_id', 'username', 'password', 'private_key', 'public_key',
|
'org_id', 'username', 'password', 'private_key', 'public_key',
|
||||||
'comment', 'date_created', 'date_updated', 'created_by',
|
'comment', 'date_created', 'date_updated', 'created_by',
|
||||||
]:
|
]:
|
||||||
value = getattr(admin_user, attr)
|
value = getattr(admin_user, attr)
|
||||||
|
@ -27,7 +28,16 @@ def migrate_admin_user_to_system_user(apps, schema_editor):
|
||||||
).exists()
|
).exists()
|
||||||
if exist:
|
if exist:
|
||||||
name = admin_user.name + '_' + str(admin_user.id)[:5]
|
name = admin_user.name + '_' + str(admin_user.id)[:5]
|
||||||
|
|
||||||
|
i = admin_user.id
|
||||||
|
exist = system_user_model.objects.using(db_alias).filter(
|
||||||
|
id=i, org_id=admin_user.org_id
|
||||||
|
).exists()
|
||||||
|
if exist:
|
||||||
|
i = uuid.uuid4()
|
||||||
|
|
||||||
kwargs.update({
|
kwargs.update({
|
||||||
|
'id': i,
|
||||||
'name': name,
|
'name': name,
|
||||||
'type': 'admin',
|
'type': 'admin',
|
||||||
'protocol': 'ssh',
|
'protocol': 'ssh',
|
||||||
|
@ -36,7 +46,11 @@ def migrate_admin_user_to_system_user(apps, schema_editor):
|
||||||
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
s = system_user_model(**kwargs)
|
s = system_user_model(**kwargs)
|
||||||
s.save()
|
try:
|
||||||
|
s.save()
|
||||||
|
except IntegrityError:
|
||||||
|
s.id = None
|
||||||
|
s.save()
|
||||||
print(" Migrate admin user to system user: {} => {}".format(admin_user.name, s.name))
|
print(" Migrate admin user to system user: {} => {}".format(admin_user.name, s.name))
|
||||||
assets = admin_user.assets.all()
|
assets = admin_user.assets.all()
|
||||||
s.assets.set(assets)
|
s.assets.set(assets)
|
||||||
|
|
Loading…
Reference in New Issue