Python 2.7 + SQL Alchemy 1115, "Неизвестный набор символов: 'utf8mb4'" - PullRequest
0 голосов
/ 07 октября 2019

У меня есть скрипт автоматизации Python 2.7, который собирает данные из нескольких источников и генерирует отчет. Он использует sqlalchemy для получения некоторых данных из БД MySQL. Скрипт хорошо работает с venv, созданным пару месяцев назад. Но если попытаться воссоздать venv, используя тот же файл require.txt, и запустить скрипт, он не сможет получить данные из БД с сообщением об ошибке:

sqlalchemy.exc.InternalError: (pymysql.err.InternalError)(1115, u "Неизвестный набор символов: 'utf8mb4'")

Конкретные версии пакетов не указаны в файле needs.txt, однако среды выглядят очень похоже, по крайней мере, версия sqlalchemy такая же, как вобе.

Есть идеи, почему одна из сред работает, а вторая - нет, и как это можно исправить? Так я работаю с БД.

        engine = create_engine(
           'mysql+pymysql://{user}:{pwd}@{host}/{db_name}'.format(
                user=self.user,
                pwd=self.pwd,
                host=self.server,
                db_name=self.db_name
            ),
            echo=False,
            pool_pre_ping=True,
            pool_size=100,
            pool_recycle=7200,
        )
        LOGGER.info('Created: %s', engine)
        self.session = scoped_session(sessionmaker(bind=engine, autoflush=False, autocommit=False))
    ....

    def execute_sql(self, sql_request):
        """Execute SQL query

        :param (str) sql_request: SQL query
        :return: (obj) query execution result
        """
        result = self.session.execute(sql_request)
        return result

Ошибка, о которой я упоминал, возникает в self.session.execute (sql_request)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...