Usando SQLAlchemy y pymysql, ¿cómo puedo configurar la conexión para utilizar utf8mb4?

Descubrí (por las malas) queJuego de caracteres UTF8 de MySQL solo tiene 3 bytes. Un poco de investigación muestra que puedo solucionar esto cambiando las tablas para utilizar elutf8mb4 colación y obtener los 4 bytes completos UTF debe ser.

Ya lo hice. Mi base de datos, tablas y columnas han sido todasALTERed para utilizar este juego de caracteres. Sin embargo, sigo recibiendo este mensaje si tengo datos que tienen puntos de código Unicode mayores que U + FFFF:

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

Descubrí que tengo la siguiente configuración:

> show variables like '%collation%';

collation_connection  utf8_general_ci
collation_database    utf8mb4_general_ci
collation_server      utf8mb4_general_ci

loscollation_server se estableció haciendo cambios amy.cnf. Mi pregunta es, ¿cómo cambio la conexión? Actualmente me conecto a la base de datos usando SQL Alchemy y pymysql como este:

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)

¿Qué puedo hacer para cambiar deutf8_general_ci autf8mb4_general_ci cuando se conecta a través de SQL Alchemy?

Respuestas a la pregunta(1)

Su respuesta a la pregunta