mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
| # Generated by Django 3.2.14 on 2022-08-16 08:29
 | |
| 
 | |
| from django.db import migrations, models
 | |
| 
 | |
| 
 | |
| def migrate_system_user_to_account(apps, schema_editor):
 | |
|     connection_token_model = apps.get_model("authentication", "ConnectionToken")
 | |
|     count = 0
 | |
|     bulk_size = 10000
 | |
| 
 | |
|     while True:
 | |
|         connection_tokens = connection_token_model.objects \
 | |
|             .prefetch_related('system_user')[count:bulk_size]
 | |
|         if not connection_tokens:
 | |
|             break
 | |
|         count += len(connection_tokens)
 | |
|         updated = []
 | |
|         for connection_token in connection_tokens:
 | |
|             if not connection_token.system_user:
 | |
|                 continue
 | |
|             connection_token.account_username = connection_token.system_user.username
 | |
|             updated.append(connection_token)
 | |
|         connection_token_model.objects.bulk_update(updated, ['account_username'])
 | |
| 
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     dependencies = [
 | |
|         ('authentication', '0011_auto_20220705_1940'),
 | |
|     ]
 | |
| 
 | |
|     operations = [
 | |
|         migrations.RemoveField(
 | |
|             model_name='connectiontoken',
 | |
|             name='application',
 | |
|         ),
 | |
|         migrations.RemoveField(
 | |
|             model_name='connectiontoken',
 | |
|             name='application_display',
 | |
|         ),
 | |
|         migrations.RemoveField(
 | |
|             model_name='connectiontoken',
 | |
|             name='system_user_display',
 | |
|         ),
 | |
|         migrations.AddField(
 | |
|             model_name='connectiontoken',
 | |
|             name='account_username',
 | |
|             field=models.CharField(default='', max_length=128, verbose_name='Account'),
 | |
|         ),
 | |
|         migrations.RunPython(migrate_system_user_to_account),
 | |
|         migrations.RemoveField(
 | |
|             model_name='connectiontoken',
 | |
|             name='system_user',
 | |
|         ),
 | |
|         migrations.RemoveField(
 | |
|             model_name='connectiontoken',
 | |
|             name='type',
 | |
|         ),
 | |
|     ]
 |