mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #34060 -- Fixed migrations crash when adding check constraints with JSONField __exact lookup on Oracle.
This commit is contained in:
committed by
Mariusz Felisiak
parent
22285d366c
commit
c991602ce5
@@ -2803,6 +2803,40 @@ class SchemaTests(TransactionTestCase):
|
||||
DurationModel.objects.create(duration=datetime.timedelta(minutes=4))
|
||||
DurationModel.objects.create(duration=datetime.timedelta(minutes=10))
|
||||
|
||||
@skipUnlessDBFeature(
|
||||
"supports_column_check_constraints",
|
||||
"can_introspect_check_constraints",
|
||||
"supports_json_field",
|
||||
)
|
||||
@isolate_apps("schema")
|
||||
def test_check_constraint_exact_jsonfield(self):
|
||||
class JSONConstraintModel(Model):
|
||||
data = JSONField()
|
||||
|
||||
class Meta:
|
||||
app_label = "schema"
|
||||
|
||||
with connection.schema_editor() as editor:
|
||||
editor.create_model(JSONConstraintModel)
|
||||
self.isolated_local_models = [JSONConstraintModel]
|
||||
constraint_name = "check_only_stable_version"
|
||||
constraint = CheckConstraint(
|
||||
check=Q(data__version="stable"),
|
||||
name=constraint_name,
|
||||
)
|
||||
JSONConstraintModel._meta.constraints = [constraint]
|
||||
with connection.schema_editor() as editor:
|
||||
editor.add_constraint(JSONConstraintModel, constraint)
|
||||
constraints = self.get_constraints(JSONConstraintModel._meta.db_table)
|
||||
self.assertIn(constraint_name, constraints)
|
||||
with self.assertRaises(IntegrityError), atomic():
|
||||
JSONConstraintModel.objects.create(
|
||||
data={"release": "5.0.2dev", "version": "dev"}
|
||||
)
|
||||
JSONConstraintModel.objects.create(
|
||||
data={"release": "5.0.3", "version": "stable"}
|
||||
)
|
||||
|
||||
@skipUnlessDBFeature(
|
||||
"supports_column_check_constraints", "can_introspect_check_constraints"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user