diff options
author | Hasan Ramezani <hasan.r67@gmail.com> | 2019-07-14 01:24:35 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-07-19 11:05:06 +0200 |
commit | 1fc2c70f7613e014a31771afa537439b28dd35fb (patch) | |
tree | dae8ebfe89e687edb518bd6031d89f9c47f774c9 /django/db/backends/mysql/schema.py | |
parent | 7f612eda80db1c1c8e502aced54c2062080eae46 (diff) | |
download | django-1fc2c70f7613e014a31771afa537439b28dd35fb.tar.gz |
Fixed #30593 -- Added support for check constraints on MariaDB 10.2+.
Diffstat (limited to 'django/db/backends/mysql/schema.py')
-rw-r--r-- | django/db/backends/mysql/schema.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py index 666aa292e8..9b80b9bede 100644 --- a/django/db/backends/mysql/schema.py +++ b/django/db/backends/mysql/schema.py @@ -28,9 +28,15 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): sql_delete_pk = "ALTER TABLE %(table)s DROP PRIMARY KEY" sql_create_index = 'CREATE INDEX %(name)s ON %(table)s (%(columns)s)%(extra)s' + # The name of the column check constraint is the same as the field name on + # MariaDB. Adding IF EXISTS clause prevents migrations crash. Constraint is + # removed during a "MODIFY" column statement. + sql_delete_check = 'ALTER TABLE %(table)s DROP CONSTRAINT IF EXISTS %(name)s' def quote_value(self, value): self.connection.ensure_connection() + if isinstance(value, str): + value = value.replace('%', '%%') # MySQLdb escapes to string, PyMySQL to bytes. quoted = self.connection.connection.escape(value, self.connection.connection.encoders) if isinstance(value, str) and isinstance(quoted, bytes): |