summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/schema/models.py4
-rw-r--r--tests/schema/tests.py15
2 files changed, 18 insertions, 1 deletions
diff --git a/tests/schema/models.py b/tests/schema/models.py
index 3139838b97..df8a1c5ce4 100644
--- a/tests/schema/models.py
+++ b/tests/schema/models.py
@@ -171,3 +171,7 @@ class Thing(models.Model):
def __str__(self):
return self.when
+
+
+class Note(models.Model):
+ info = models.TextField()
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index 4a7d537665..4c773599f9 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -10,7 +10,7 @@ from django.db.transaction import atomic
from .models import (Author, AuthorWithDefaultHeight, AuthorWithM2M, Book, BookWithLongName,
BookWithSlug, BookWithM2M, Tag, TagIndexed, TagM2MTest, TagUniqueRename,
UniqueTest, Thing, TagThrough, BookWithM2MThrough, AuthorTag, AuthorWithM2MThrough,
- AuthorWithEvenLongerName, BookWeak)
+ AuthorWithEvenLongerName, BookWeak, Note)
class SchemaTests(TransactionTestCase):
@@ -423,6 +423,19 @@ class SchemaTests(TransactionTestCase):
self.assertEqual(columns['name'][0], "TextField")
self.assertEqual(bool(columns['name'][1][6]), False)
+ def test_alter_text_field(self):
+ # Regression for "BLOB/TEXT column 'info' can't have a default value")
+ # on MySQL.
+ new_field = TextField(blank=True)
+ new_field.set_attributes_from_name("info")
+ with connection.schema_editor() as editor:
+ editor.alter_field(
+ Note,
+ Note._meta.get_field_by_name("info")[0],
+ new_field,
+ strict=True,
+ )
+
def test_alter_null_to_not_null(self):
"""
#23609 - Tests handling of default values when altering from NULL to NOT NULL.