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