Skip to content

Commit cce6860

Browse files
armongeclaude
andcommitted
fix: guard constraints setdefault behind Django >= 2.2 check
Django < 2.2 does not support the constraints Meta option, so setting it as a default causes "'class Meta' got invalid attribute(s): constraints". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9a29618 commit cce6860

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

psqlextra/backend/migrations/operations/create_materialized_view_model.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import django
12
from django.db.migrations.operations.models import CreateModel
23

34
from psqlextra.backend.migrations.state import (
@@ -34,7 +35,8 @@ def __init__(
3435
def state_forwards(self, app_label, state):
3536
options = dict(self.options)
3637
options.setdefault("indexes", [])
37-
options.setdefault("constraints", [])
38+
if django.VERSION >= (2, 2):
39+
options.setdefault("constraints", [])
3840
state.add_model(
3941
PostgresMaterializedViewModelState(
4042
app_label=app_label,

psqlextra/backend/migrations/operations/create_partitioned_model.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import django
12
from django.db.migrations.operations.models import CreateModel
23

34
from psqlextra.backend.migrations.state import PostgresPartitionedModelState
@@ -29,7 +30,8 @@ def __init__(
2930
def state_forwards(self, app_label, state):
3031
options = dict(self.options)
3132
options.setdefault("indexes", [])
32-
options.setdefault("constraints", [])
33+
if django.VERSION >= (2, 2):
34+
options.setdefault("constraints", [])
3335
state.add_model(
3436
PostgresPartitionedModelState(
3537
app_label=app_label,

psqlextra/backend/migrations/operations/create_view_model.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import django
12
from django.db.migrations.operations.models import CreateModel
23

34
from psqlextra.backend.migrations.state import PostgresViewModelState
@@ -29,7 +30,8 @@ def __init__(
2930
def state_forwards(self, app_label, state):
3031
options = dict(self.options)
3132
options.setdefault("indexes", [])
32-
options.setdefault("constraints", [])
33+
if django.VERSION >= (2, 2):
34+
options.setdefault("constraints", [])
3335
state.add_model(
3436
PostgresViewModelState(
3537
app_label=app_label,

0 commit comments

Comments
 (0)