mirror of https://github.com/jumpserver/jumpserver
feng626
2 years ago
committed by
老广
1 changed files with 48 additions and 0 deletions
@ -0,0 +1,48 @@
|
||||
# Generated by Django 3.1.14 on 2022-07-15 07:56 |
||||
import time |
||||
from collections import defaultdict |
||||
|
||||
from django.db import migrations |
||||
|
||||
|
||||
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 |
||||
|
||||
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): |
||||
dependencies = [ |
||||
('applications', '0022_auto_20220714_1046'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.RunPython(migrate_account_dirty_data), |
||||
] |
Loading…
Reference in new issue