authentik.providers.rac.migrations.0007_migrate_session
1# Generated by Django 5.0.11 on 2025-01-27 12:59 2 3from django.db import migrations 4import django.db.models.deletion 5from django.db import migrations, models 6 7 8def migrate_sessions(apps, schema_editor): 9 ConnectionToken = apps.get_model("authentik_providers_rac", "ConnectionToken") 10 AuthenticatedSession = apps.get_model("authentik_core", "AuthenticatedSession") 11 db_alias = schema_editor.connection.alias 12 13 for token in ConnectionToken.objects.using(db_alias).all(): 14 token.session = ( 15 AuthenticatedSession.objects.using(db_alias) 16 .filter(session__session_key=token.old_session.session_key) 17 .first() 18 ) 19 if token.session: 20 token.save() 21 else: 22 token.delete() 23 24 25class Migration(migrations.Migration): 26 27 dependencies = [ 28 ("authentik_providers_rac", "0006_connectiontoken_authentik_p_expires_91f148_idx_and_more"), 29 ("authentik_core", "0046_session_and_more"), 30 ] 31 32 operations = [ 33 migrations.RenameField( 34 model_name="connectiontoken", 35 old_name="session", 36 new_name="old_session", 37 ), 38 migrations.AddField( 39 model_name="connectiontoken", 40 name="session", 41 field=models.ForeignKey( 42 null=True, 43 on_delete=django.db.models.deletion.CASCADE, 44 to="authentik_core.authenticatedsession", 45 ), 46 ), 47 migrations.RunPython(code=migrate_sessions), 48 migrations.AlterField( 49 model_name="connectiontoken", 50 name="session", 51 field=models.ForeignKey( 52 on_delete=django.db.models.deletion.CASCADE, 53 to="authentik_core.authenticatedsession", 54 ), 55 ), 56 migrations.RemoveField( 57 model_name="connectiontoken", 58 name="old_session", 59 ), 60 ]
def
migrate_sessions(apps, schema_editor):
9def migrate_sessions(apps, schema_editor): 10 ConnectionToken = apps.get_model("authentik_providers_rac", "ConnectionToken") 11 AuthenticatedSession = apps.get_model("authentik_core", "AuthenticatedSession") 12 db_alias = schema_editor.connection.alias 13 14 for token in ConnectionToken.objects.using(db_alias).all(): 15 token.session = ( 16 AuthenticatedSession.objects.using(db_alias) 17 .filter(session__session_key=token.old_session.session_key) 18 .first() 19 ) 20 if token.session: 21 token.save() 22 else: 23 token.delete()
class
Migration(django.db.migrations.migration.Migration):
26class Migration(migrations.Migration): 27 28 dependencies = [ 29 ("authentik_providers_rac", "0006_connectiontoken_authentik_p_expires_91f148_idx_and_more"), 30 ("authentik_core", "0046_session_and_more"), 31 ] 32 33 operations = [ 34 migrations.RenameField( 35 model_name="connectiontoken", 36 old_name="session", 37 new_name="old_session", 38 ), 39 migrations.AddField( 40 model_name="connectiontoken", 41 name="session", 42 field=models.ForeignKey( 43 null=True, 44 on_delete=django.db.models.deletion.CASCADE, 45 to="authentik_core.authenticatedsession", 46 ), 47 ), 48 migrations.RunPython(code=migrate_sessions), 49 migrations.AlterField( 50 model_name="connectiontoken", 51 name="session", 52 field=models.ForeignKey( 53 on_delete=django.db.models.deletion.CASCADE, 54 to="authentik_core.authenticatedsession", 55 ), 56 ), 57 migrations.RemoveField( 58 model_name="connectiontoken", 59 name="old_session", 60 ), 61 ]
The base class for all migrations.
Migration files will import this from django.db.migrations.Migration and subclass it as a class called Migration. It will have one or more of the following attributes:
- operations: A list of Operation instances, probably from django.db.migrations.operations
- dependencies: A list of tuples of (app_path, migration_name)
- run_before: A list of tuples of (app_path, migration_name)
- replaces: A list of migration_names
Note that all migrations come out of migrations and into the Loader or Graph as instances, having been initialized with their app label and name.
dependencies =
[('authentik_providers_rac', '0006_connectiontoken_authentik_p_expires_91f148_idx_and_more'), ('authentik_core', '0046_session_and_more')]
operations =
[<RenameField model_name='connectiontoken', old_name='session', new_name='old_session'>, <AddField model_name='connectiontoken', name='session', field=<django.db.models.fields.related.ForeignKey>>, <RunPython code=<function migrate_sessions>>, <AlterField model_name='connectiontoken', name='session', field=<django.db.models.fields.related.ForeignKey>>, <RemoveField model_name='connectiontoken', name='old_session'>]