diff --git a/peewee.py b/peewee.py index 5270c3940..5c5f29aef 100644 --- a/peewee.py +++ b/peewee.py @@ -3702,7 +3702,7 @@ def conflict_update(self, on_conflict, query): # Here we need to determine which function to use, which varies # depending on the MySQL server version. MySQL and MariaDB prior to # 10.3.3 use "VALUES", while MariaDB 10.3.3+ use "VALUE". - version = self._server_version or (0,) + version = self.server_version or (0,) if version[0] == 10 and version >= (10, 3, 3): VALUE_FN = fn.VALUE else: diff --git a/playhouse/mysql_ext.py b/playhouse/mysql_ext.py index 16f1ee085..dbccc9541 100644 --- a/playhouse/mysql_ext.py +++ b/playhouse/mysql_ext.py @@ -11,14 +11,7 @@ class MySQLConnectorDatabase(MySQLDatabase): def _connect(self): if mysql_connector is None: raise ImproperlyConfigured('MySQL connector not installed!') - conn = mysql_connector.connect(db=self.database, **self.connect_params) - if self._server_version is None: - # MySQL-Connector supports getting the version as a tuple, but this - # method does not return the proper MariaDB version on systems like - # Ubuntu, which express the version as 5.5.5-10.0.37-MariaDB-... - version_raw = conn.get_server_info() - self._server_version = self._extract_server_version(version_raw) - return conn + return mysql_connector.connect(db=self.database, **self.connect_params) def cursor(self, commit=None): if self.is_closed(): diff --git a/tests/base.py b/tests/base.py index bfbd52cfc..1cf28d1c4 100644 --- a/tests/base.py +++ b/tests/base.py @@ -89,7 +89,7 @@ def new_connection(): IS_MYSQL_ADVANCED_FEATURES = False if IS_MYSQL: db.connect() - server_info = db._server_version + server_info = db.server_version if server_info[0] == 8 or server_info[:2] >= (10, 2): IS_MYSQL_ADVANCED_FEATURES = True elif server_info[0] == 0: diff --git a/tests/sql.py b/tests/sql.py index a89ed592c..c0a268a5c 100644 --- a/tests/sql.py +++ b/tests/sql.py @@ -1465,7 +1465,7 @@ class TestOnConflictMySQL(BaseTestCase): def setUp(self): super(TestOnConflictMySQL, self).setUp() - self.database._server_version = None + self.database.server_version = None def test_replace(self): query = Person.insert(name='huey').on_conflict('replace') @@ -1504,13 +1504,13 @@ def test_update_use_value_mariadb(self): query = (Person .insert(name='huey', dob=dob) .on_conflict(preserve=(Person.dob,))) - self.database._server_version = (10, 3, 3) + self.database.server_version = (10, 3, 3) self.assertSQL(query, ( 'INSERT INTO "person" ("dob", "name") VALUES (?, ?) ' 'ON DUPLICATE KEY ' 'UPDATE "dob" = VALUE("dob")'), [dob, 'huey']) - self.database._server_version = (10, 3, 2) + self.database.server_version = (10, 3, 2) self.assertSQL(query, ( 'INSERT INTO "person" ("dob", "name") VALUES (?, ?) ' 'ON DUPLICATE KEY '