Update DatabaseWrapper class to operate similarly to the standard MySQL backend

Updating to use the API for Django 1.1.1
This commit is contained in:
R. Tyler Ballance 2010-02-18 14:50:31 -08:00
parent c59faac144
commit 239c8b87a8
1 changed files with 18 additions and 17 deletions

View File

@ -174,13 +174,13 @@ class DatabaseWrapper(BaseDatabaseWrapper):
'iendswith': 'LIKE %s', 'iendswith': 'LIKE %s',
} }
def __init__(self, **kwargs): def __init__(self, *args, **kwargs):
super(DatabaseWrapper, self).__init__(**kwargs) super(DatabaseWrapper, self).__init__(*args, **kwargs)
self.server_version = None self.server_version = None
self.features = DatabaseFeatures() self.features = DatabaseFeatures()
self.ops = DatabaseOperations() self.ops = DatabaseOperations()
self.client = DatabaseClient() self.client = DatabaseClient(self)
self.creation = DatabaseCreation(self) self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self) self.introspection = DatabaseIntrospection(self)
self.validation = DatabaseValidation() self.validation = DatabaseValidation()
@ -195,26 +195,27 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.connection = None self.connection = None
return False return False
def _cursor(self, settings): def _cursor(self):
if not self._valid_connection(): if not self._valid_connection():
kwargs = { kwargs = {
#'conv': django_conversions, #'conv': django_conversions,
'charset': 'utf8', 'charset': 'utf8',
'use_unicode': True, 'use_unicode': True,
} }
if settings.DATABASE_USER: settings_dict = self.settings_dict
kwargs['user'] = settings.DATABASE_USER if settings_dict['DATABASE_USER']:
if settings.DATABASE_NAME: kwargs['user'] = settings_dict['DATABASE_USER']
kwargs['db'] = settings.DATABASE_NAME if settings_dict['DATABASE_NAME']:
if settings.DATABASE_PASSWORD: kwargs['db'] = settings_dict['DATABASE_NAME']
kwargs['passwd'] = settings.DATABASE_PASSWORD if settings_dict['DATABASE_PASSWORD']:
if settings.DATABASE_HOST.startswith('/'): kwargs['password'] = settings_dict['DATABASE_PASSWORD']
kwargs['unix_socket'] = settings.DATABASE_HOST if settings_dict['DATABASE_HOST'].startswith('/'):
elif settings.DATABASE_HOST: kwargs['unix_socket'] = settings_dict['DATABASE_HOST']
kwargs['host'] = settings.DATABASE_HOST elif settings_dict['DATABASE_HOST']:
if settings.DATABASE_PORT: kwargs['host'] = settings_dict['DATABASE_HOST']
kwargs['port'] = int(settings.DATABASE_PORT) if settings_dict['DATABASE_PORT']:
kwargs.update(self.options) kwargs['port'] = int(settings_dict['DATABASE_PORT'])
kwargs.update(settings_dict['DATABASE_OPTIONS'])
self.connection = Database.connect(**kwargs) self.connection = Database.connect(**kwargs)
self.connection.set_converter_class(DjangoMySQLConverter) self.connection.set_converter_class(DjangoMySQLConverter)
cursor = self.connection.cursor() cursor = self.connection.cursor()