[1.5.x] Fixed #20025 -- Pointed to a MySQLdb fork for Python 3.

Made a few minor compatibility adjustments.

Backport of e81e319f from master.
This commit is contained in:
Aymeric Augustin 2013-05-05 19:44:43 +02:00
parent b5d6a5b21a
commit 6d3d6081e8
3 changed files with 15 additions and 4 deletions

View File

@ -383,8 +383,9 @@ class DatabaseWrapper(BaseDatabaseWrapper):
kwargs = {
'conv': django_conversions,
'charset': 'utf8',
'use_unicode': True,
}
if not six.PY3:
kwargs['use_unicode'] = True
settings_dict = self.settings_dict
if settings_dict['USER']:
kwargs['user'] = settings_dict['USER']

View File

@ -10,6 +10,7 @@ class DatabaseValidation(BaseDatabaseValidation):
from django.db import models
varchar_fields = (models.CharField, models.CommaSeparatedIntegerField,
models.SlugField)
if isinstance(f, varchar_fields) and f.max_length > 255 and f.unique:
if (isinstance(f, varchar_fields) and f.unique
and (f.max_length is None or int(f.max_length) > 255)):
msg = '"%(name)s": %(cls)s cannot have a "max_length" greater than 255 when using "unique=True".'
errors.add(opts, msg % {'name': f.name, 'cls': f.__class__.__name__})

View File

@ -209,6 +209,15 @@ required for full MySQL support in Django.
.. _MySQLdb: http://sourceforge.net/projects/mysql-python
Python 3
--------
At the time of writing, the latest release of MySQLdb (1.2.4) doesn't support
Python 3. In order to use MySQL under Python 3, you'll have to install an
unofficial fork, such as `MySQL-for-Python-3`_.
.. _MySQL-for-Python-3: https://github.com/clelland/MySQL-for-Python-3
Creating your database
----------------------
@ -318,8 +327,8 @@ Here's a sample configuration which uses a MySQL option file::
default-character-set = utf8
Several other MySQLdb connection options may be useful, such as ``ssl``,
``use_unicode``, ``init_command``, and ``sql_mode``. Consult the
`MySQLdb documentation`_ for more details.
``init_command``, and ``sql_mode``. Consult the `MySQLdb documentation`_ for
more details.
.. _MySQL option file: http://dev.mysql.com/doc/refman/5.0/en/option-files.html
.. _MySQLdb documentation: http://mysql-python.sourceforge.net/