Используя SQLAlchemy и pymysql, как мне установить соединение, чтобы использовать utf8mb4?

Я обнаружил (трудный путь), чтоНабор символов MySQL UTF8 только 3 байта. Небольшое исследование показывает, что я могу это исправить, изменив таблицы, чтобы использоватьutf8mb4 сопоставление и получение полных 4 байтов UTF должно быть.

Я так и сделал. Моя база данных, таблицы и столбцы были всеALTERред, чтобы использовать эту кодировку. Однако, я все еще получаю это сообщение, если у меня есть данные, у которых кодовые точки Unicode больше чем U + FFFF

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='"

Я обнаружил, что у меня есть следующие настройки:

> show variables like '%collation%';

collation_connection  utf8_general_ci
collation_database    utf8mb4_general_ci
collation_server      utf8mb4_general_ci

collation_server был установлен путем внесения изменений вmy.cnf, Мой вопрос, как мне изменить соединение один? В настоящее время я подключаюсь к базе данных, используя SQL Alchemy и pymysql следующим образом:

connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT, DATABASE)
engine = create_engine(connect_string, convert_unicode=True, echo=False)
session = sessionmaker()
session.configure(bind=engine)

Что я могу сделать, чтобы изменитьutf8_general_ci вutf8mb4_general_ci при подключении через SQL Alchemy?

Ответы на вопрос(1)

Ваш ответ на вопрос