mirror of
https://github.com/django/django.git
synced 2025-12-04 00:55:36 +00:00
Prevent Oracle from changing field.null to True
Fixed #17957 -- when using Oracle and character fields, the fields were set null = True to ease the handling of empty strings. This caused problems when using multiple databases from different vendors, or when the character field happened to be also a primary key. The handling was changed so that NOT NULL is not emitted on Oracle even if field.null = False, and field.null is not touched otherwise. Thanks to bhuztez for the report, ramiro for triaging & comments, ikelly for the patch and alex for reviewing.
This commit is contained in:
parent
e75bd7e51c
commit
584e2c0337
6 changed files with 57 additions and 16 deletions
|
|
@ -55,9 +55,8 @@ string, not ``NULL``.
|
|||
|
||||
.. note::
|
||||
|
||||
When using the Oracle database backend, the ``null=True`` option will be
|
||||
coerced for string-based fields that have the empty string as a possible
|
||||
value, and the value ``NULL`` will be stored to denote the empty string.
|
||||
When using the Oracle database backend, the value ``NULL`` will be stored to
|
||||
denote the empty string regardless of this attribute.
|
||||
|
||||
If you want to accept :attr:`~Field.null` values with :class:`BooleanField`,
|
||||
use :class:`NullBooleanField` instead.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue