providers/proxy: add error handing when field is already gone

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2021-12-22 22:31:53 +01:00
parent f01d117ce6
commit f458cae954
2 changed files with 16 additions and 6 deletions

View File

@ -2,6 +2,7 @@
import django.db.models.deletion import django.db.models.deletion
from django.apps.registry import Apps from django.apps.registry import Apps
from django.core.exceptions import FieldError
from django.db import migrations, models from django.db import migrations, models
from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.backends.base.schema import BaseDatabaseSchemaEditor
@ -14,9 +15,13 @@ def migrate_defaults(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
from authentik.providers.proxy.models import ProxyProvider from authentik.providers.proxy.models import ProxyProvider
db_alias = schema_editor.connection.alias db_alias = schema_editor.connection.alias
try:
for provider in ProxyProvider.objects.using(db_alias).filter(jwt_alg=JWTAlgorithms.RS256): for provider in ProxyProvider.objects.using(db_alias).filter(jwt_alg=JWTAlgorithms.RS256):
provider.set_oauth_defaults() provider.set_oauth_defaults()
provider.save() provider.save()
except FieldError:
# If the jwt_alg field doesn't exist, just ignore this migration
pass
def migrate_mode(apps: Apps, schema_editor: BaseDatabaseSchemaEditor): def migrate_mode(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):

View File

@ -1,6 +1,7 @@
# Generated by Django 3.2.6 on 2021-09-09 11:24 # Generated by Django 3.2.6 on 2021-09-09 11:24
from django.apps.registry import Apps from django.apps.registry import Apps
from django.core.exceptions import FieldError
from django.db import migrations from django.db import migrations
from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.backends.base.schema import BaseDatabaseSchemaEditor
@ -10,9 +11,13 @@ def migrate_defaults(apps: Apps, schema_editor: BaseDatabaseSchemaEditor):
from authentik.providers.proxy.models import ProxyProvider from authentik.providers.proxy.models import ProxyProvider
db_alias = schema_editor.connection.alias db_alias = schema_editor.connection.alias
try:
for provider in ProxyProvider.objects.using(db_alias).filter(jwt_alg=JWTAlgorithms.RS256): for provider in ProxyProvider.objects.using(db_alias).filter(jwt_alg=JWTAlgorithms.RS256):
provider.set_oauth_defaults() provider.set_oauth_defaults()
provider.save() provider.save()
except FieldError:
# If the jwt_alg field doesn't exist, just ignore this migration
pass
class Migration(migrations.Migration): class Migration(migrations.Migration):