1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

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 7414704e88.
This commit is contained in:
Simon Charette
2024-02-03 10:54:51 -05:00
committed by Mariusz Felisiak
parent 0630ca5725
commit dfc77637ea
3 changed files with 22 additions and 1 deletions

View File

@@ -2303,6 +2303,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"
)