mirror of https://github.com/jumpserver/jumpserver
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
# Generated by Django 3.2.14 on 2022-08-16 08:29
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
def migrate_system_user_to_account(apps, schema_editor):
|
|
connection_token_model = apps.get_model("authentication", "ConnectionToken")
|
|
count = 0
|
|
bulk_size = 10000
|
|
|
|
while True:
|
|
connection_tokens = connection_token_model.objects \
|
|
.prefetch_related('system_user')[count:bulk_size]
|
|
if not connection_tokens:
|
|
break
|
|
count += len(connection_tokens)
|
|
updated = []
|
|
for connection_token in connection_tokens:
|
|
if not connection_token.system_user:
|
|
continue
|
|
connection_token.account_username = connection_token.system_user.username
|
|
updated.append(connection_token)
|
|
connection_token_model.objects.bulk_update(updated, ['account_username'])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('authentication', '0011_auto_20220705_1940'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RemoveField(
|
|
model_name='connectiontoken',
|
|
name='application',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='connectiontoken',
|
|
name='application_display',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='connectiontoken',
|
|
name='system_user_display',
|
|
),
|
|
migrations.AddField(
|
|
model_name='connectiontoken',
|
|
name='account_username',
|
|
field=models.CharField(default='', max_length=128, verbose_name='Account'),
|
|
),
|
|
migrations.RunPython(migrate_system_user_to_account),
|
|
migrations.RemoveField(
|
|
model_name='connectiontoken',
|
|
name='system_user',
|
|
),
|
|
migrations.RemoveField(
|
|
model_name='connectiontoken',
|
|
name='type',
|
|
),
|
|
]
|