From 3e7a30fb3a5ea38d06bbedd53e2130bf192425c7 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Sat, 3 Feb 2024 10:54:51 -0500 Subject: [5.0.x] Fixed #35162 -- Fixed crash when adding fields with db_default on MySQL. MySQL doesn't allow literal DEFAULT values to be used for BLOB, TEXT, GEOMETRY or JSON columns and requires expression to be used instead. Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3. Backport of dfc77637ea5c1aa81caa72b1cf900e6931d61b54 from main --- tests/schema/tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests/schema') diff --git a/tests/schema/tests.py b/tests/schema/tests.py index a16c4a6bfe..eeaa46af06 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -2306,6 +2306,19 @@ class SchemaTests(TransactionTestCase): columns = self.column_classes(Author) self.assertEqual(columns["birth_year"][1].default, "1988") + @isolate_apps("schema") + def test_add_text_field_with_db_default(self): + class Author(Model): + description = TextField(db_default="(missing)") + + class Meta: + app_label = "schema" + + with connection.schema_editor() as editor: + editor.create_model(Author) + columns = self.column_classes(Author) + self.assertIn("(missing)", columns["description"][1].default) + @skipUnlessDBFeature( "supports_column_check_constraints", "can_introspect_check_constraints" ) -- cgit v1.3