authentik.core.migrations.0046_session_and_more

  1# Generated by Django 5.0.11 on 2025-01-27 12:58
  2
  3import uuid
  4from django.db import migrations, models
  5import django.db.models.deletion
  6from django.conf import settings
  7
  8
  9class Migration(migrations.Migration):
 10
 11    dependencies = [
 12        ("sessions", "0001_initial"),
 13        ("authentik_core", "0045_rename_new_identifier_usersourceconnection_identifier_and_more"),
 14        ("authentik_providers_oauth2", "0027_accesstoken_authentik_p_expires_9f24a5_idx_and_more"),
 15        ("authentik_providers_rac", "0006_connectiontoken_authentik_p_expires_91f148_idx_and_more"),
 16    ]
 17
 18    operations = [
 19        # Rename AuthenticatedSession to OldAuthenticatedSession
 20        migrations.RenameModel(
 21            old_name="AuthenticatedSession",
 22            new_name="OldAuthenticatedSession",
 23        ),
 24        migrations.RenameIndex(
 25            model_name="oldauthenticatedsession",
 26            new_name="authentik_c_expires_cf4f72_idx",
 27            old_name="authentik_c_expires_08251d_idx",
 28        ),
 29        migrations.RenameIndex(
 30            model_name="oldauthenticatedsession",
 31            new_name="authentik_c_expirin_c1f17f_idx",
 32            old_name="authentik_c_expirin_9cd839_idx",
 33        ),
 34        migrations.RenameIndex(
 35            model_name="oldauthenticatedsession",
 36            new_name="authentik_c_expirin_e04f5d_idx",
 37            old_name="authentik_c_expirin_195a84_idx",
 38        ),
 39        migrations.RenameIndex(
 40            model_name="oldauthenticatedsession",
 41            new_name="authentik_c_session_a44819_idx",
 42            old_name="authentik_c_session_d0f005_idx",
 43        ),
 44        migrations.RunSQL(
 45            sql="ALTER INDEX authentik_core_authenticatedsession_user_id_5055b6cf RENAME TO authentik_core_oldauthenticatedsession_user_id_5055b6cf",
 46            reverse_sql="ALTER INDEX authentik_core_oldauthenticatedsession_user_id_5055b6cf RENAME TO authentik_core_authenticatedsession_user_id_5055b6cf",
 47        ),
 48        # Create new Session and AuthenticatedSession models
 49        migrations.CreateModel(
 50            name="Session",
 51            fields=[
 52                (
 53                    "session_key",
 54                    models.CharField(
 55                        max_length=40, primary_key=True, serialize=False, verbose_name="session key"
 56                    ),
 57                ),
 58                ("expires", models.DateTimeField(default=None, null=True)),
 59                ("expiring", models.BooleanField(default=True)),
 60                ("session_data", models.BinaryField(verbose_name="session data")),
 61                ("last_ip", models.GenericIPAddressField()),
 62                ("last_user_agent", models.TextField(blank=True)),
 63                ("last_used", models.DateTimeField(auto_now=True)),
 64            ],
 65            options={
 66                "default_permissions": [],
 67                "verbose_name": "Session",
 68                "verbose_name_plural": "Sessions",
 69            },
 70        ),
 71        migrations.AddIndex(
 72            model_name="session",
 73            index=models.Index(fields=["expires"], name="authentik_c_expires_d2f607_idx"),
 74        ),
 75        migrations.AddIndex(
 76            model_name="session",
 77            index=models.Index(fields=["expiring"], name="authentik_c_expirin_7c2cfb_idx"),
 78        ),
 79        migrations.AddIndex(
 80            model_name="session",
 81            index=models.Index(
 82                fields=["expiring", "expires"], name="authentik_c_expirin_1ab2e4_idx"
 83            ),
 84        ),
 85        migrations.AddIndex(
 86            model_name="session",
 87            index=models.Index(
 88                fields=["expires", "session_key"], name="authentik_c_expires_c49143_idx"
 89            ),
 90        ),
 91        migrations.CreateModel(
 92            name="AuthenticatedSession",
 93            fields=[
 94                (
 95                    "session",
 96                    models.OneToOneField(
 97                        on_delete=django.db.models.deletion.CASCADE,
 98                        primary_key=True,
 99                        serialize=False,
100                        to="authentik_core.session",
101                    ),
102                ),
103                ("uuid", models.UUIDField(default=uuid.uuid4, unique=True)),
104                (
105                    "user",
106                    models.ForeignKey(
107                        on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
108                    ),
109                ),
110            ],
111            options={
112                "verbose_name": "Authenticated Session",
113                "verbose_name_plural": "Authenticated Sessions",
114            },
115        ),
116    ]
class Migration(django.db.migrations.migration.Migration):
 10class Migration(migrations.Migration):
 11
 12    dependencies = [
 13        ("sessions", "0001_initial"),
 14        ("authentik_core", "0045_rename_new_identifier_usersourceconnection_identifier_and_more"),
 15        ("authentik_providers_oauth2", "0027_accesstoken_authentik_p_expires_9f24a5_idx_and_more"),
 16        ("authentik_providers_rac", "0006_connectiontoken_authentik_p_expires_91f148_idx_and_more"),
 17    ]
 18
 19    operations = [
 20        # Rename AuthenticatedSession to OldAuthenticatedSession
 21        migrations.RenameModel(
 22            old_name="AuthenticatedSession",
 23            new_name="OldAuthenticatedSession",
 24        ),
 25        migrations.RenameIndex(
 26            model_name="oldauthenticatedsession",
 27            new_name="authentik_c_expires_cf4f72_idx",
 28            old_name="authentik_c_expires_08251d_idx",
 29        ),
 30        migrations.RenameIndex(
 31            model_name="oldauthenticatedsession",
 32            new_name="authentik_c_expirin_c1f17f_idx",
 33            old_name="authentik_c_expirin_9cd839_idx",
 34        ),
 35        migrations.RenameIndex(
 36            model_name="oldauthenticatedsession",
 37            new_name="authentik_c_expirin_e04f5d_idx",
 38            old_name="authentik_c_expirin_195a84_idx",
 39        ),
 40        migrations.RenameIndex(
 41            model_name="oldauthenticatedsession",
 42            new_name="authentik_c_session_a44819_idx",
 43            old_name="authentik_c_session_d0f005_idx",
 44        ),
 45        migrations.RunSQL(
 46            sql="ALTER INDEX authentik_core_authenticatedsession_user_id_5055b6cf RENAME TO authentik_core_oldauthenticatedsession_user_id_5055b6cf",
 47            reverse_sql="ALTER INDEX authentik_core_oldauthenticatedsession_user_id_5055b6cf RENAME TO authentik_core_authenticatedsession_user_id_5055b6cf",
 48        ),
 49        # Create new Session and AuthenticatedSession models
 50        migrations.CreateModel(
 51            name="Session",
 52            fields=[
 53                (
 54                    "session_key",
 55                    models.CharField(
 56                        max_length=40, primary_key=True, serialize=False, verbose_name="session key"
 57                    ),
 58                ),
 59                ("expires", models.DateTimeField(default=None, null=True)),
 60                ("expiring", models.BooleanField(default=True)),
 61                ("session_data", models.BinaryField(verbose_name="session data")),
 62                ("last_ip", models.GenericIPAddressField()),
 63                ("last_user_agent", models.TextField(blank=True)),
 64                ("last_used", models.DateTimeField(auto_now=True)),
 65            ],
 66            options={
 67                "default_permissions": [],
 68                "verbose_name": "Session",
 69                "verbose_name_plural": "Sessions",
 70            },
 71        ),
 72        migrations.AddIndex(
 73            model_name="session",
 74            index=models.Index(fields=["expires"], name="authentik_c_expires_d2f607_idx"),
 75        ),
 76        migrations.AddIndex(
 77            model_name="session",
 78            index=models.Index(fields=["expiring"], name="authentik_c_expirin_7c2cfb_idx"),
 79        ),
 80        migrations.AddIndex(
 81            model_name="session",
 82            index=models.Index(
 83                fields=["expiring", "expires"], name="authentik_c_expirin_1ab2e4_idx"
 84            ),
 85        ),
 86        migrations.AddIndex(
 87            model_name="session",
 88            index=models.Index(
 89                fields=["expires", "session_key"], name="authentik_c_expires_c49143_idx"
 90            ),
 91        ),
 92        migrations.CreateModel(
 93            name="AuthenticatedSession",
 94            fields=[
 95                (
 96                    "session",
 97                    models.OneToOneField(
 98                        on_delete=django.db.models.deletion.CASCADE,
 99                        primary_key=True,
100                        serialize=False,
101                        to="authentik_core.session",
102                    ),
103                ),
104                ("uuid", models.UUIDField(default=uuid.uuid4, unique=True)),
105                (
106                    "user",
107                    models.ForeignKey(
108                        on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
109                    ),
110                ),
111            ],
112            options={
113                "verbose_name": "Authenticated Session",
114                "verbose_name_plural": "Authenticated Sessions",
115            },
116        ),
117    ]

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 = [('sessions', '0001_initial'), ('authentik_core', '0045_rename_new_identifier_usersourceconnection_identifier_and_more'), ('authentik_providers_oauth2', '0027_accesstoken_authentik_p_expires_9f24a5_idx_and_more'), ('authentik_providers_rac', '0006_connectiontoken_authentik_p_expires_91f148_idx_and_more')]
operations = [<RenameModel old_name='AuthenticatedSession', new_name='OldAuthenticatedSession'>, <RenameIndex model_name='oldauthenticatedsession', new_name='authentik_c_expires_cf4f72_idx', old_name='authentik_c_expires_08251d_idx'>, <RenameIndex model_name='oldauthenticatedsession', new_name='authentik_c_expirin_c1f17f_idx', old_name='authentik_c_expirin_9cd839_idx'>, <RenameIndex model_name='oldauthenticatedsession', new_name='authentik_c_expirin_e04f5d_idx', old_name='authentik_c_expirin_195a84_idx'>, <RenameIndex model_name='oldauthenticatedsession', new_name='authentik_c_session_a44819_idx', old_name='authentik_c_session_d0f005_idx'>, <RunSQL sql='ALTER INDEX authentik_core_authenticatedsession_user_id_5055b6cf RENAME TO authentik_core_oldauthenticatedsession_user_id_5055b6cf', reverse_sql='ALTER INDEX authentik_core_oldauthenticatedsession_user_id_5055b6cf RENAME TO authentik_core_authenticatedsession_user_id_5055b6cf'>, <CreateModel name='Session', fields=[('session_key', <django.db.models.fields.CharField>), ('expires', <django.db.models.fields.DateTimeField>), ('expiring', <django.db.models.fields.BooleanField>), ('session_data', <django.db.models.fields.BinaryField>), ('last_ip', <django.db.models.fields.GenericIPAddressField>), ('last_user_agent', <django.db.models.fields.TextField>), ('last_used', <django.db.models.fields.DateTimeField>)], options={'default_permissions': [], 'verbose_name': 'Session', 'verbose_name_plural': 'Sessions'}>, <AddIndex model_name='session', index=<Index: fields=['expires'] name='authentik_c_expires_d2f607_idx'>>, <AddIndex model_name='session', index=<Index: fields=['expiring'] name='authentik_c_expirin_7c2cfb_idx'>>, <AddIndex model_name='session', index=<Index: fields=['expiring', 'expires'] name='authentik_c_expirin_1ab2e4_idx'>>, <AddIndex model_name='session', index=<Index: fields=['expires', 'session_key'] name='authentik_c_expires_c49143_idx'>>, <CreateModel name='AuthenticatedSession', fields=[('session', <django.db.models.fields.related.OneToOneField>), ('uuid', <django.db.models.fields.UUIDField>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Authenticated Session', 'verbose_name_plural': 'Authenticated Sessions'}>]