diff options
author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-09-04 16:54:27 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-09-05 09:18:34 +0200 |
commit | e2c6a0858d7d9ad85eda353076a5b46608b704a9 (patch) | |
tree | 6207019300056a7410d39464f362c6502846ce44 /django/db/backends/mysql/schema.py | |
parent | b93d786251513a5da102abc31f275ab3ee2850ed (diff) | |
download | django-e2c6a0858d7d9ad85eda353076a5b46608b704a9.tar.gz |
Fixed #30750 -- Added support for check constraints on MySQL 8.0.16+.
Diffstat (limited to 'django/db/backends/mysql/schema.py')
-rw-r--r-- | django/db/backends/mysql/schema.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py index d138606791..d379965c27 100644 --- a/django/db/backends/mysql/schema.py +++ b/django/db/backends/mysql/schema.py @@ -28,10 +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' + + @property + def sql_delete_check(self): + if self.connection.mysql_is_mariadb: + # 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. + return 'ALTER TABLE %(table)s DROP CONSTRAINT IF EXISTS %(name)s' + return 'ALTER TABLE %(table)s DROP CHECK %(name)s' def quote_value(self, value): self.connection.ensure_connection() |