jumpserver/apps/applications/migrations/0026_auto_20220817_1716.py

61 lines
1.6 KiB
Python
Raw Normal View History

2022-08-18 03:15:17 +00:00
# Generated by Django 3.2.14 on 2022-08-17 09:16
2022-08-30 04:50:01 +00:00
import time
2022-08-18 03:15:17 +00:00
from django.db import migrations
2022-08-30 04:50:01 +00:00
def migrate_account_dirty_data(apps, schema_editor):
db_alias = schema_editor.connection.alias
account_model = apps.get_model('applications', 'Account')
count = 0
bulk_size = 1000
while True:
accounts = account_model.objects.using(db_alias) \
.filter(org_id='')[count:count + bulk_size]
if not accounts:
break
2022-08-18 03:15:17 +00:00
2022-08-30 04:50:01 +00:00
accounts = list(accounts)
start = time.time()
for i in accounts:
if i.app:
org_id = i.app.org_id
elif i.systemuser:
org_id = i.systemuser.org_id
else:
org_id = ''
if org_id:
i.org_id = org_id
account_model.objects.bulk_update(accounts, ['org_id', ])
print("Update account org is empty: {}-{} using: {:.2f}s".format(
count, count + len(accounts), time.time() - start
))
count += len(accounts)
class Migration(migrations.Migration):
2022-08-18 03:15:17 +00:00
dependencies = [
('applications', '0025_auto_20220817_1346'),
2022-08-18 03:15:17 +00:00
('perms', '0031_auto_20220816_1600'),
('ops', '0022_auto_20220817_1346'),
2022-08-24 08:14:32 +00:00
('assets', '0105_auto_20220817_1544'),
2022-08-18 03:15:17 +00:00
('tickets', '0020_auto_20220817_1346'),
]
operations = [
2022-08-30 04:50:01 +00:00
migrations.RunPython(migrate_account_dirty_data),
2022-08-18 03:15:17 +00:00
migrations.DeleteModel(
name='Account',
),
migrations.DeleteModel(
name='HistoricalAccount',
),
migrations.DeleteModel(
name='ApplicationUser',
),
]