jumpserver/apps/ops/migrations/0022_auto_20220817_1346.py

48 lines
1.3 KiB
Python

# Generated by Django 3.2.14 on 2022-08-17 05:46
from django.db import migrations, models
def migrate_run_system_user_to_account(apps, schema_editor):
execution_model = apps.get_model('ops', 'CommandExecution')
count = 0
bulk_size = 1000
while True:
executions = execution_model.objects.all().prefetch_related('run_as')[count:bulk_size]
if not executions:
break
count += len(executions)
updated = []
for obj in executions:
run_as = obj.run_as
if not run_as:
continue
obj.account = run_as.username
updated.append(obj)
execution_model.objects.bulk_update(updated, ['account'])
class Migration(migrations.Migration):
dependencies = [
('ops', '0021_auto_20211130_1037'),
]
operations = [
migrations.RemoveField(
model_name='adhoc',
name='run_system_user',
),
migrations.AddField(
model_name='commandexecution',
name='account',
field=models.CharField(default='', max_length=128, verbose_name='account'),
),
migrations.RunPython(migrate_run_system_user_to_account),
migrations.RemoveField(
model_name='commandexecution',
name='run_as',
),
]