mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #24595 -- Prevented loss of null info in MySQL field alteration
Thanks Simon Percivall for the report, and Simon Charette and Tim Graham for the reviews.
This commit is contained in:
parent
ed336a1a5d
commit
02260ea3f6
7 changed files with 80 additions and 26 deletions
|
@ -426,6 +426,22 @@ class SchemaTests(TransactionTestCase):
|
|||
with connection.schema_editor() as editor:
|
||||
editor.alter_field(Note, old_field, new_field, strict=True)
|
||||
|
||||
def test_alter_field_keep_null_status(self):
|
||||
"""
|
||||
Changing a field type shouldn't affect the not null status.
|
||||
"""
|
||||
with connection.schema_editor() as editor:
|
||||
editor.create_model(Note)
|
||||
with self.assertRaises(IntegrityError):
|
||||
Note.objects.create(info=None)
|
||||
old_field = Note._meta.get_field("info")
|
||||
new_field = CharField(max_length=50)
|
||||
new_field.set_attributes_from_name("info")
|
||||
with connection.schema_editor() as editor:
|
||||
editor.alter_field(Note, old_field, new_field, strict=True)
|
||||
with self.assertRaises(IntegrityError):
|
||||
Note.objects.create(info=None)
|
||||
|
||||
def test_alter_null_to_not_null(self):
|
||||
"""
|
||||
#23609 - Tests handling of default values when altering from NULL to NOT NULL.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue