authentik.enterprise.migrations.0003_remove_licenseusage_within_limits_and_more

 1# Generated by Django 5.0.8 on 2024-08-08 14:15
 2
 3from django.db import migrations, models
 4from django.apps.registry import Apps
 5from django.db.backends.base.schema import BaseDatabaseSchemaEditor
 6
 7
 8def migrate_license_usage(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
 9    LicenseUsage = apps.get_model("authentik_enterprise", "licenseusage")
10    db_alias = schema_editor.connection.alias
11
12    for usage in LicenseUsage.objects.using(db_alias).all():
13        usage.status = "valid" if usage.within_limits else "limit_exceeded_admin"
14        usage.save()
15
16
17class Migration(migrations.Migration):
18
19    dependencies = [
20        ("authentik_enterprise", "0002_rename_users_license_internal_users_and_more"),
21    ]
22
23    operations = [
24        migrations.AddField(
25            model_name="licenseusage",
26            name="status",
27            field=models.TextField(
28                choices=[
29                    ("unlicensed", "Unlicensed"),
30                    ("valid", "Valid"),
31                    ("expired", "Expired"),
32                    ("expiry_soon", "Expiry Soon"),
33                    ("limit_exceeded_admin", "Limit Exceeded Admin"),
34                    ("limit_exceeded_user", "Limit Exceeded User"),
35                    ("read_only", "Read Only"),
36                ],
37                default=None,
38                null=True,
39            ),
40            preserve_default=False,
41        ),
42        migrations.RunPython(migrate_license_usage),
43        migrations.RemoveField(
44            model_name="licenseusage",
45            name="within_limits",
46        ),
47        migrations.AlterField(
48            model_name="licenseusage",
49            name="status",
50            field=models.TextField(
51                choices=[
52                    ("unlicensed", "Unlicensed"),
53                    ("valid", "Valid"),
54                    ("expired", "Expired"),
55                    ("expiry_soon", "Expiry Soon"),
56                    ("limit_exceeded_admin", "Limit Exceeded Admin"),
57                    ("limit_exceeded_user", "Limit Exceeded User"),
58                    ("read_only", "Read Only"),
59                ],
60            ),
61            preserve_default=False,
62        ),
63        migrations.RenameField(
64            model_name="licenseusage",
65            old_name="user_count",
66            new_name="internal_user_count",
67        ),
68    ]
def migrate_license_usage( apps: django.apps.registry.Apps, schema_editor: django.db.backends.base.schema.BaseDatabaseSchemaEditor):
 9def migrate_license_usage(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
10    LicenseUsage = apps.get_model("authentik_enterprise", "licenseusage")
11    db_alias = schema_editor.connection.alias
12
13    for usage in LicenseUsage.objects.using(db_alias).all():
14        usage.status = "valid" if usage.within_limits else "limit_exceeded_admin"
15        usage.save()
class Migration(django.db.migrations.migration.Migration):
18class Migration(migrations.Migration):
19
20    dependencies = [
21        ("authentik_enterprise", "0002_rename_users_license_internal_users_and_more"),
22    ]
23
24    operations = [
25        migrations.AddField(
26            model_name="licenseusage",
27            name="status",
28            field=models.TextField(
29                choices=[
30                    ("unlicensed", "Unlicensed"),
31                    ("valid", "Valid"),
32                    ("expired", "Expired"),
33                    ("expiry_soon", "Expiry Soon"),
34                    ("limit_exceeded_admin", "Limit Exceeded Admin"),
35                    ("limit_exceeded_user", "Limit Exceeded User"),
36                    ("read_only", "Read Only"),
37                ],
38                default=None,
39                null=True,
40            ),
41            preserve_default=False,
42        ),
43        migrations.RunPython(migrate_license_usage),
44        migrations.RemoveField(
45            model_name="licenseusage",
46            name="within_limits",
47        ),
48        migrations.AlterField(
49            model_name="licenseusage",
50            name="status",
51            field=models.TextField(
52                choices=[
53                    ("unlicensed", "Unlicensed"),
54                    ("valid", "Valid"),
55                    ("expired", "Expired"),
56                    ("expiry_soon", "Expiry Soon"),
57                    ("limit_exceeded_admin", "Limit Exceeded Admin"),
58                    ("limit_exceeded_user", "Limit Exceeded User"),
59                    ("read_only", "Read Only"),
60                ],
61            ),
62            preserve_default=False,
63        ),
64        migrations.RenameField(
65            model_name="licenseusage",
66            old_name="user_count",
67            new_name="internal_user_count",
68        ),
69    ]

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_enterprise', '0002_rename_users_license_internal_users_and_more')]
operations = [<AddField model_name='licenseusage', name='status', field=<django.db.models.fields.TextField>, preserve_default=False>, <RunPython <function migrate_license_usage>>, <RemoveField model_name='licenseusage', name='within_limits'>, <AlterField model_name='licenseusage', name='status', field=<django.db.models.fields.TextField>, preserve_default=False>, <RenameField model_name='licenseusage', old_name='user_count', new_name='internal_user_count'>]