mirror of
https://github.com/django/django.git
synced 2024-12-23 01:25:58 +00:00
Revert "Fixed #22401 -- Deprecated regular expression parsing of initial SQL in favor of installing sqlparse."
This reverts commit 071c933775
.
This introduced a regression on MySQL and custom SQL is deprecated.
This commit is contained in:
parent
66ec9ee441
commit
47927eb786
@ -10,7 +10,7 @@ from django.conf import settings
|
||||
from django.core.management.base import CommandError
|
||||
from django.db import models, router
|
||||
from django.utils import six
|
||||
from django.utils.deprecation import RemovedInDjango19Warning, RemovedInDjango20Warning
|
||||
from django.utils.deprecation import RemovedInDjango19Warning
|
||||
|
||||
|
||||
def sql_create(app_config, style, connection):
|
||||
@ -155,27 +155,18 @@ def sql_all(app_config, style, connection):
|
||||
|
||||
|
||||
def _split_statements(content):
|
||||
try:
|
||||
import sqlparse
|
||||
except ImportError:
|
||||
warnings.warn(
|
||||
"Providing intial SQL data works better with sqlparse installed "
|
||||
"and it will be required in Django 2.0.", RemovedInDjango20Warning
|
||||
)
|
||||
comment_re = re.compile(r"^((?:'[^']*'|[^'])*?)--.*$")
|
||||
statements = []
|
||||
statement = []
|
||||
for line in content.split("\n"):
|
||||
cleaned_line = comment_re.sub(r"\1", line).strip()
|
||||
if not cleaned_line:
|
||||
continue
|
||||
statement.append(cleaned_line)
|
||||
if cleaned_line.endswith(";"):
|
||||
statements.append(" ".join(statement))
|
||||
statement = []
|
||||
return statements
|
||||
else:
|
||||
return sqlparse.split(content.strip())
|
||||
comment_re = re.compile(r"^((?:'[^']*'|[^'])*?)--.*$")
|
||||
statements = []
|
||||
statement = []
|
||||
for line in content.split("\n"):
|
||||
cleaned_line = comment_re.sub(r"\1", line).strip()
|
||||
if not cleaned_line:
|
||||
continue
|
||||
statement.append(cleaned_line)
|
||||
if cleaned_line.endswith(";"):
|
||||
statements.append(" ".join(statement))
|
||||
statement = []
|
||||
return statements
|
||||
|
||||
|
||||
def custom_sql_for_model(model, style, connection):
|
||||
|
@ -103,14 +103,6 @@ directories.
|
||||
Providing initial SQL data
|
||||
==========================
|
||||
|
||||
.. deprecated:: 1.8
|
||||
|
||||
Historically this functionality has used regular expression parsing of the
|
||||
initial SQL which is a bit buggy. This parsing is now deprecated in favor
|
||||
of installing `sqlparse <https://pypi.python.org/pypi/sqlparse>`_; doing so
|
||||
will be required for this functionality in Django 2.0. You can install it
|
||||
using ``pip install sqlparse``.
|
||||
|
||||
Django provides a hook for passing the database arbitrary SQL that's executed
|
||||
just after the CREATE TABLE statements when you run :djadmin:`migrate`. You can
|
||||
use this hook to populate default records, or you could also create SQL
|
||||
|
@ -166,7 +166,6 @@ dependencies:
|
||||
* memcached_, plus a :ref:`supported Python binding <memcached>`
|
||||
* gettext_ (:ref:`gettext_on_windows`)
|
||||
* selenium_
|
||||
* sqlparse_
|
||||
|
||||
You can find these dependencies in `pip requirements files`_ inside the
|
||||
``tests/requirements`` directory of the Django source tree and install them
|
||||
@ -198,7 +197,6 @@ associated tests will be skipped.
|
||||
.. _memcached: http://memcached.org/
|
||||
.. _gettext: http://www.gnu.org/software/gettext/manual/gettext.html
|
||||
.. _selenium: https://pypi.python.org/pypi/selenium
|
||||
.. _sqlparse: https://pypi.python.org/pypi/sqlparse
|
||||
.. _pip requirements files: http://www.pip-installer.org/en/latest/cookbook.html#requirements-files
|
||||
|
||||
Code coverage
|
||||
|
@ -25,9 +25,6 @@ about each item can often be found in the release notes of two versions prior.
|
||||
* Using an incorrect count of unpacked values in the ``for`` template tag
|
||||
will raise an exception rather than fail silently.
|
||||
|
||||
* The regular expression parsing of SQL initial data will be removed and
|
||||
``sqlparse`` will be required for the feature.
|
||||
|
||||
.. _deprecation-removed-in-1.9:
|
||||
|
||||
1.9
|
||||
|
@ -128,9 +128,6 @@ Management Commands
|
||||
* :djadmin:`dumpdata` now has the option :djadminopt:`--output` which allows
|
||||
specifying the file to which the serialized data is written.
|
||||
|
||||
* :ref:`initial-sql` now works better if the `sqlparse
|
||||
<https://pypi.python.org/pypi/sqlparse>`_ Python library is installed.
|
||||
|
||||
Models
|
||||
^^^^^^
|
||||
|
||||
@ -281,12 +278,3 @@ Using an incorrect count of unpacked values in the :ttag:`for` template tag
|
||||
|
||||
Using an incorrect count of unpacked values in :ttag:`for` tag will raise an
|
||||
exception rather than fail silently in Django 2.0.
|
||||
|
||||
Regular expression parsing of initial SQL
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The somewhat buggy regular expression logic used for parsing :ref:`SQL initial
|
||||
data <initial-sql>` has been deprecated. Install `sqlparse
|
||||
<https://pypi.python.org/pypi/sqlparse>`_ if you wish to use this feature.
|
||||
Doing so will be required in Django 2.0 when the regular expression logic is
|
||||
removed.
|
||||
|
@ -5,4 +5,3 @@ Pillow
|
||||
PyYAML
|
||||
pytz > dev
|
||||
selenium
|
||||
sqlparse
|
||||
|
Loading…
Reference in New Issue
Block a user