Fixed #20025 -- Pointed to a MySQLdb fork for Python 3.

Made a few minor compatibility adjustments.
This commit is contained in:
Aymeric Augustin 2013-05-05 19:44:43 +02:00
parent 1fff8daf88
commit e81e319f15
3 changed files with 15 additions and 4 deletions

View File

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

View File

@ -10,6 +10,7 @@ class DatabaseValidation(BaseDatabaseValidation):
from django.db import models from django.db import models
varchar_fields = (models.CharField, models.CommaSeparatedIntegerField, varchar_fields = (models.CharField, models.CommaSeparatedIntegerField,
models.SlugField) 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".' 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__}) errors.add(opts, msg % {'name': f.name, 'cls': f.__class__.__name__})

View File

@ -252,6 +252,15 @@ required for full MySQL support in Django.
.. _MySQLdb: http://sourceforge.net/projects/mysql-python .. _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 Creating your database
---------------------- ----------------------
@ -361,8 +370,8 @@ Here's a sample configuration which uses a MySQL option file::
default-character-set = utf8 default-character-set = utf8
Several other MySQLdb connection options may be useful, such as ``ssl``, Several other MySQLdb connection options may be useful, such as ``ssl``,
``use_unicode``, ``init_command``, and ``sql_mode``. Consult the ``init_command``, and ``sql_mode``. Consult the `MySQLdb documentation`_ for
`MySQLdb documentation`_ for more details. more details.
.. _MySQL option file: http://dev.mysql.com/doc/refman/5.0/en/option-files.html .. _MySQL option file: http://dev.mysql.com/doc/refman/5.0/en/option-files.html
.. _MySQLdb documentation: http://mysql-python.sourceforge.net/ .. _MySQLdb documentation: http://mysql-python.sourceforge.net/