[5.0.x] Fixed #35018 -- Fixed migrations crash on GeneratedField with BooleanField as output_field on Oracle < 23c.

Thanks Václav Řehák for the report.

Regression in f333e3513e.

Backport of fcf95e5927 from main.
This commit is contained in:
Mariusz Felisiak 2023-12-12 05:39:11 +01:00
parent 03af8fbd0f
commit 5f89da0837
8 changed files with 75 additions and 18 deletions

View file

@ -852,6 +852,27 @@ class SchemaTests(TransactionTestCase):
False,
)
@isolate_apps("schema")
@skipUnlessDBFeature("supports_virtual_generated_columns")
def test_add_generated_boolean_field(self):
class GeneratedBooleanFieldModel(Model):
value = IntegerField(null=True)
has_value = GeneratedField(
expression=Q(value__isnull=False),
output_field=BooleanField(),
db_persist=False,
)
class Meta:
app_label = "schema"
with connection.schema_editor() as editor:
editor.create_model(GeneratedBooleanFieldModel)
obj = GeneratedBooleanFieldModel.objects.create()
self.assertIs(obj.has_value, False)
obj = GeneratedBooleanFieldModel.objects.create(value=1)
self.assertIs(obj.has_value, True)
@isolate_apps("schema")
@skipUnlessDBFeature("supports_stored_generated_columns")
def test_add_generated_field(self):