diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py index 0b0c1702ec..75cc6852d9 100644 --- a/django/db/backends/oracle/creation.py +++ b/django/db/backends/oracle/creation.py @@ -1,26 +1,26 @@ DATA_TYPES = { - 'AutoField': 'number(38)', - 'BooleanField': 'number(1)', + 'AutoField': 'number(11)', + 'BooleanField': 'number(1) CHECK (%(column)s IN (0,1))', 'CharField': 'varchar2(%(maxlength)s)', 'CommaSeparatedIntegerField': 'varchar2(%(maxlength)s)', 'DateField': 'date', - 'DateTimeField': 'date', + 'DateTimeField': 'timestamp with time zone', 'FileField': 'varchar2(100)', 'FilePathField': 'varchar2(100)', 'FloatField': 'number(%(max_digits)s, %(decimal_places)s)', 'ImageField': 'varchar2(100)', - 'IntegerField': 'integer', + 'IntegerField': 'number(11)', 'IPAddressField': 'char(15)', 'ManyToManyField': None, - 'NullBooleanField': 'integer', - 'OneToOneField': 'integer', - 'PhoneNumberField': 'varchar(20)', - 'PositiveIntegerField': 'integer', - 'PositiveSmallIntegerField': 'smallint', - 'SlugField': 'varchar(50)', - 'SmallIntegerField': 'smallint', + 'NullBooleanField': 'number(1) CHECK ((%(column)s IN (0,1)) OR (%(column)s IS NULL))', + 'OneToOneField': 'number(11)', + 'PhoneNumberField': 'varchar2(20)', + 'PositiveIntegerField': 'number(11) CHECK (%(column)s >= 0)', + 'PositiveSmallIntegerField': 'number(11) CHECK (%(column)s >= 0)', + 'SlugField': 'varchar2(50)', + 'SmallIntegerField': 'number(11)', 'TextField': 'clob', 'TimeField': 'timestamp', - 'URLField': 'varchar(200)', - 'USStateField': 'varchar(2)', + 'URLField': 'varchar2(200)', + 'USStateField': 'char(2)', }