• 
      

    Add a Django patch to work around a mysqlclient incompatibility.

    Review Request #11898 — Created Jan. 2, 2022 and submitted — Latest diff uploaded

    Information

    Django Evolution
    release-2.x

    Reviewers

    Django, up through 1.11, made an assumption that mysqlclient's
    database connection class had bytes in a mapping of internal data type
    converters. This assumption worked in Python 2.7, since bytes and
    str were the same thing, but it broke on Python 3. The mysqlclient
    developers temporarily added compatibility for this, but have recently
    removed that as of mysqlclient 2.1, since Django 2.0+ doesn't exhibit
    this problem.

    This change adds a patch to work around that problem. It pre-populates
    the needed bytes mapping in the conversion map that Django sets up and
    passes to mysqlclient. Django's improper logic will still kick in, but
    it will no longer fail on newer versions of mysqlclient without that
    workaround.

    Tested MySQL support on Python 3 on Django 1.6 through 2.0, with
    mysqlclient 1.4.6, 2.0, and 2.1.

    Commits

    Files