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', '0100_auto_20220711_1413'),
 | 
						|
        ('tickets', '0020_auto_20220817_1346'),
 | 
						|
    ]
 | 
						|
 | 
						|
    operations = [
 | 
						|
        migrations.RunPython(migrate_account_dirty_data),
 | 
						|
        migrations.DeleteModel(
 | 
						|
            name='Account',
 | 
						|
        ),
 | 
						|
        migrations.DeleteModel(
 | 
						|
            name='HistoricalAccount',
 | 
						|
        ),
 | 
						|
        migrations.DeleteModel(
 | 
						|
            name='ApplicationUser',
 | 
						|
        ),
 | 
						|
    ]
 |