From bb42bab6d32aab3344b809e49c696a83d45a2954 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 28 Oct 2014 08:10:45 -0400 Subject: [PATCH] [1.7.x] Fixed #23719 -- Fixed MySQL 5.6 crash with GeometryFields in migrations. Backport of 03bd79ed2 from master --- django/contrib/gis/db/backends/mysql/schema.py | 7 +++++++ docs/releases/1.7.2.txt | 3 +++ 2 files changed, 10 insertions(+) diff --git a/django/contrib/gis/db/backends/mysql/schema.py b/django/contrib/gis/db/backends/mysql/schema.py index 3979182c19..4d708686ba 100644 --- a/django/contrib/gis/db/backends/mysql/schema.py +++ b/django/contrib/gis/db/backends/mysql/schema.py @@ -15,6 +15,13 @@ class MySQLGISSchemaEditor(DatabaseSchemaEditor): super(MySQLGISSchemaEditor, self).__init__(*args, **kwargs) self.geometry_sql = [] + def skip_default(self, field): + return ( + super(MySQLGISSchemaEditor, self).skip_default(field) or + # Geometry fields are stored as BLOB/TEXT and can't have defaults. + isinstance(field, GeometryField) + ) + def column_sql(self, model, field, include_default=False): column_sql = super(MySQLGISSchemaEditor, self).column_sql(model, field, include_default) # MySQL doesn't support spatial indexes on NULL columns diff --git a/docs/releases/1.7.2.txt b/docs/releases/1.7.2.txt index 2736f5ec24..db65ec1885 100644 --- a/docs/releases/1.7.2.txt +++ b/docs/releases/1.7.2.txt @@ -26,3 +26,6 @@ Bugfixes :setting:`STATIC_ROOT` has the default ``None`` value (:ticket:`23717`). * Added GeoDjango compatibility with mysqlclient database driver. + +* Fixed MySQL 5.6+ crash with ``GeometryField``\s in migrations + (:ticket:`23719`).