예제 #1
0
    def _cursor(self):
        if not self.pool:
            kwargs = {
                'conv': django_conversions,
                'charset': 'utf8',
                'use_unicode': True,
            }
            settings_dict = self.settings_dict
            if settings_dict['USER']:
                kwargs['user'] = settings_dict['USER']
            if settings_dict['NAME']:
                kwargs['db'] = settings_dict['NAME']
            if settings_dict['PASSWORD']:
                kwargs['passwd'] = settings_dict['PASSWORD']
            if settings_dict['HOST'].startswith('/'):
                kwargs['unix_socket'] = settings_dict['HOST']
            elif settings_dict['HOST']:
                kwargs['host'] = settings_dict['HOST']
            if settings_dict['PORT']:
                kwargs['port'] = int(settings_dict['PORT'])
            kwargs['client_flag'] = CLIENT.FOUND_ROWS
            kwargs.update(settings_dict['OPTIONS'])
            self.pool = eventlet.db_pool.TpooledConnectionPool(MySQLdb,
                                                               min_size=1,
                                                               max_size=16,
                                                               **kwargs)

        if not self._valid_connection():
            self.connection = self.pool.get()
            connection_created.send(sender=self.__class__)
        cursor = mysqldb_base.CursorWrapper(self.connection.cursor())
        return cursor
예제 #2
0
 def _cursor(self):
   if not self._valid_connection():
     kwargs = {'conv': base.django_conversions, 'dsn': None}
     settings_dict = self.settings_dict
     settings_dict.update(settings_dict.get('OPTIONS', {}))
     for settings_key, kwarg, required in _SETTINGS_CONNECT_ARGS:
       value = settings_dict.get(settings_key)
       if value:
         kwargs[kwarg] = value
       elif required:
         raise exceptions.ImproperlyConfigured(
             "You must specify a '%s' for database '%s'" %
             (settings_key, self.alias))
     self.connection = Connect(**kwargs)
     encoders = {safestring.SafeUnicode: self.connection.encoders[str],
                 safestring.SafeString: self.connection.encoders[str]}
     self.connection.encoders.update(encoders)
     signals.connection_created.send(sender=self.__class__, connection=self)
   cursor = base.CursorWrapper(self.connection.cursor())
   return cursor
예제 #3
0
 def create_secondary_cursor(self):
     cursor = self.secondary_wrapper.cursor()
     return base.CursorWrapper(cursor)
예제 #4
0
 def create_primary_cursor(self):
     cursor = self.connection.cursor()
     return base.CursorWrapper(cursor)
예제 #5
0
def dict_cursor(self):
    cursor = self._cursor()
    cursor.close()
    return base.CursorWrapper(
        self.connection.cursor(MySQLdb.cursors.DictCursor))
예제 #6
0
 def create_cursor(self):
     cursor = base.CursorWrapper(self.connection.cursor())
     return cursor