Просмотр исходного кода

Implement utf8mb4 charset.

tags/v1.0^2
Ben Kurtovic 12 лет назад
Родитель
Сommit
10d5d1266e
1 измененных файлов: 10 добавлений и 2 удалений
  1. +10
    -2
      bitshift/database/__init__.py

+ 10
- 2
bitshift/database/__init__.py Просмотреть файл

@@ -3,6 +3,7 @@ Subpackage with classes and functions to handle communication with the MySQL
database backend, which manages the search index. database backend, which manages the search index.
""" """


import codecs
import os import os


import mmh3 import mmh3
@@ -24,10 +25,17 @@ class Database(object):


def _connect(self): def _connect(self):
"""Establish a connection to the database.""" """Establish a connection to the database."""
try:
codecs.lookup("utf8mb4")
except LookupError:
utf8 = codecs.lookup("utf8")
codecs.register(lambda name: utf8 if name == "utf8mb4" else None)

root = os.path.dirname(os.path.abspath(__file__)) root = os.path.dirname(os.path.abspath(__file__))
default_file = os.path.join(root, ".my.cnf") default_file = os.path.join(root, ".my.cnf")
return oursql.connect(db="bitshift", read_default_file=default_file,
autoping=True, autoreconnect=True)
return oursql.connect(
db="bitshift", read_default_file=default_file, autoping=True,
autoreconnect=True, charset="utf8mb4")


def _migrate(self, cursor, current): def _migrate(self, cursor, current):
"""Migrate the database to the latest schema version.""" """Migrate the database to the latest schema version."""


Загрузка…
Отмена
Сохранить