Fixed #33718 -- Dropped support for MySQL 5.7.

This commit is contained in:
Mariusz Felisiak 2022-07-08 13:30:12 +02:00 committed by GitHub
parent ccbf714ebe
commit eb3699ea77
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 42 additions and 126 deletions

View file

@ -22,11 +22,9 @@ GeoDjango currently provides the following spatial database backends:
MySQL Spatial Limitations
-------------------------
Before MySQL 5.6.1, spatial extensions only support bounding box operations
(what MySQL calls minimum bounding rectangles, or MBR). Specifically, MySQL did
not conform to the OGC standard. Django supports spatial functions operating on
real geometries available in modern MySQL versions. However, the spatial
functions are not as rich as other backends like PostGIS.
Django supports spatial functions operating on real geometries available in
modern MySQL versions. However, the spatial functions are not as rich as other
backends like PostGIS.
Raster Support
--------------
@ -318,7 +316,7 @@ Lookup Type PostGIS Oracle MariaDB MySQL [#]_ Sp
:lookup:`equals` X X X X X C
:lookup:`exact <same_as>` X X X X X B
:lookup:`intersects` X X X X X B
:lookup:`isvalid` X X X (≥ 5.7.5) X
:lookup:`isvalid` X X X X
:lookup:`overlaps` X X X X X B
:lookup:`relate` X X X X C
:lookup:`same_as` X X X X X B
@ -348,7 +346,7 @@ functions are available on each spatial backend.
Function PostGIS Oracle MariaDB MySQL SpatiaLite
==================================== ======= ============== ============ =========== =================
:class:`Area` X X X X X
:class:`AsGeoJSON` X X X X (≥ 5.7.5) X
:class:`AsGeoJSON` X X X X X
:class:`AsGML` X X X
:class:`AsKML` X X
:class:`AsSVG` X X
@ -361,9 +359,9 @@ Function PostGIS Oracle MariaDB MySQL
:class:`Distance` X X X X X
:class:`Envelope` X X X X X
:class:`ForcePolygonCW` X X
:class:`GeoHash` X X (≥ 5.7.5) X (LWGEOM/RTTOPO)
:class:`GeoHash` X X X (LWGEOM/RTTOPO)
:class:`Intersection` X X X X X
:class:`IsValid` X X X (≥ 5.7.5) X
:class:`IsValid` X X X X
:class:`Length` X X X X X
:class:`LineLocatePoint` X X
:class:`MakeValid` X X (LWGEOM/RTTOPO)

View file

@ -53,7 +53,7 @@ geographic SRSes.
.. class:: AsGeoJSON(expression, bbox=False, crs=False, precision=8, **extra)
*Availability*: MariaDB, `MySQL
<https://dev.mysql.com/doc/refman/en/spatial-geojson-functions.html#function_st-asgeojson>`__ (≥ 5.7.5),
<https://dev.mysql.com/doc/refman/en/spatial-geojson-functions.html#function_st-asgeojson>`__,
Oracle, `PostGIS <https://postgis.net/docs/ST_AsGeoJSON.html>`__, SpatiaLite
Accepts a single geographic field or expression and returns a `GeoJSON
@ -333,7 +333,7 @@ are returned unchanged.
.. class:: GeoHash(expression, precision=None, **extra)
*Availability*: `MySQL
<https://dev.mysql.com/doc/refman/en/spatial-geohash-functions.html#function_st-geohash>`__ (≥ 5.7.5),
<https://dev.mysql.com/doc/refman/en/spatial-geohash-functions.html#function_st-geohash>`__,
`PostGIS <https://postgis.net/docs/ST_GeoHash.html>`__, SpatiaLite
(LWGEOM/RTTOPO)
@ -374,7 +374,7 @@ intersection between them.
.. class:: IsValid(expr)
*Availability*: `MySQL
<https://dev.mysql.com/doc/refman/en/spatial-convenience-functions.html#function_st-isvalid>`__ (≥ 5.7.5),
<https://dev.mysql.com/doc/refman/en/spatial-convenience-functions.html#function_st-isvalid>`__,
`PostGIS <https://postgis.net/docs/ST_IsValid.html>`__, Oracle, SpatiaLite
Accepts a geographic field or expression and tests if the value is well formed.

View file

@ -351,8 +351,8 @@ SpatiaLite ``Intersects(poly, geom)``
``isvalid``
-----------
*Availability*: MySQL (≥ 5.7.5), `PostGIS
<https://postgis.net/docs/ST_IsValid.html>`__, Oracle, SpatiaLite
*Availability*: MySQL, `PostGIS <https://postgis.net/docs/ST_IsValid.html>`__,
Oracle, SpatiaLite
Tests if the geometry is valid.

View file

@ -59,7 +59,7 @@ supported versions, and any notes for each of the supported database backends:
Database Library Requirements Supported Versions Notes
================== ============================== ================== =========================================
PostgreSQL GEOS, GDAL, PROJ, PostGIS 12+ Requires PostGIS.
MySQL GEOS, GDAL 5.7+ :ref:`Limited functionality <mysql-spatial-limitations>`.
MySQL GEOS, GDAL 8+ :ref:`Limited functionality <mysql-spatial-limitations>`.
Oracle GEOS, GDAL 19+ XE not supported.
SQLite GEOS, GDAL, PROJ, SpatiaLite 3.9.0+ Requires SpatiaLite 4.3+
================== ============================== ================== =========================================

View file

@ -352,7 +352,7 @@ MySQL notes
Version support
---------------
Django supports MySQL 5.7 and higher.
Django supports MySQL 8 and higher.
Django's ``inspectdb`` feature uses the ``information_schema`` database, which
contains detailed data on all database schemas.
@ -535,11 +535,10 @@ Several other `MySQLdb connection options`_ may be useful, such as ``ssl``,
Setting ``sql_mode``
~~~~~~~~~~~~~~~~~~~~
From MySQL 5.7 onward, the default value of the ``sql_mode`` option contains
``STRICT_TRANS_TABLES``. That option escalates warnings into errors when data
are truncated upon insertion, so Django highly recommends activating a
`strict mode`_ for MySQL to prevent data loss (either ``STRICT_TRANS_TABLES``
or ``STRICT_ALL_TABLES``).
The default value of the ``sql_mode`` option contains ``STRICT_TRANS_TABLES``.
That option escalates warnings into errors when data are truncated upon
insertion, so Django highly recommends activating a `strict mode`_ for MySQL to
prevent data loss (either ``STRICT_TRANS_TABLES`` or ``STRICT_ALL_TABLES``).
.. _strict mode: https://dev.mysql.com/doc/refman/en/sql-mode.html#sql-mode-strict

View file

@ -1200,8 +1200,8 @@ A field for storing JSON encoded data. In Python the data is represented in its
Python native format: dictionaries, lists, strings, numbers, booleans and
``None``.
``JSONField`` is supported on MariaDB, MySQL 5.7.8+, Oracle, PostgreSQL, and
SQLite (with the :ref:`JSON1 extension enabled <sqlite-json1>`).
``JSONField`` is supported on MariaDB, MySQL, Oracle, PostgreSQL, and SQLite
(with the :ref:`JSON1 extension enabled <sqlite-json1>`).
.. attribute:: JSONField.encoder