mirror of https://github.com/jumpserver/jumpserver
61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
|
# Generated by Django 3.2.14 on 2022-08-17 09:16
|
||
|
import time
|
||
|
|
||
|
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', '0025_auto_20220817_1346'),
|
||
|
('perms', '0031_auto_20220816_1600'),
|
||
|
('ops', '0022_auto_20220817_1346'),
|
||
|
('assets', '0105_auto_20220817_1544'),
|
||
|
('tickets', '0020_auto_20220817_1346'),
|
||
|
]
|
||
|
|
||
|
operations = [
|
||
|
migrations.RunPython(migrate_account_dirty_data),
|
||
|
migrations.DeleteModel(
|
||
|
name='Account',
|
||
|
),
|
||
|
migrations.DeleteModel(
|
||
|
name='HistoricalAccount',
|
||
|
),
|
||
|
migrations.DeleteModel(
|
||
|
name='ApplicationUser',
|
||
|
),
|
||
|
]
|