From 243e9aed23814bc552382bc007d707ab2432fc4a Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Sun, 29 Oct 2023 16:03:11 -0400 Subject: [PATCH] Replace uses of deprecated Connection::query() method --- .../DatabaseBackup/MysqlDatabaseBackup.php | 25 ++++++++++++++++--- .../DatabaseTools/ORMDatabaseTool.php | 14 +++++++++-- .../DatabaseTools/ORMSqliteDatabaseTool.php | 14 +++++++++-- 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/Services/DatabaseBackup/MysqlDatabaseBackup.php b/src/Services/DatabaseBackup/MysqlDatabaseBackup.php index 9cf1e658..b3fe6d6b 100644 --- a/src/Services/DatabaseBackup/MysqlDatabaseBackup.php +++ b/src/Services/DatabaseBackup/MysqlDatabaseBackup.php @@ -84,7 +84,12 @@ public function restore(AbstractExecutor $executor, array $excludedTables = []): $em = $executor->getReferenceRepository()->getManager(); $connection = $em->getConnection(); - $connection->query('SET FOREIGN_KEY_CHECKS = 0;'); + if (method_exists($connection, 'executeQuery')) { + $connection->executeQuery('SET FOREIGN_KEY_CHECKS = 0;'); + } else { + $connection->query('SET FOREIGN_KEY_CHECKS = 0;'); + } + $this->updateSchemaIfNeed($em); $truncateSql = []; foreach ($this->metadatas as $classMetadata) { @@ -95,17 +100,29 @@ public function restore(AbstractExecutor $executor, array $excludedTables = []): } } if (!empty($truncateSql)) { - $connection->query(implode(';', $truncateSql)); + if (method_exists($connection, 'executeQuery')) { + $connection->executeQuery(implode(';', $truncateSql)); + } else { + $connection->query(implode(';', $truncateSql)); + } } // Only run query if it exists, to avoid the following exception: // SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty $backup = $this->getBackup(); if (!empty($backup)) { - $connection->query($backup); + if (method_exists($connection, 'executeQuery')) { + $connection->executeQuery($backup); + } else { + $connection->query($backup); + } } - $connection->query('SET FOREIGN_KEY_CHECKS = 1;'); + if (method_exists($connection, 'executeQuery')) { + $connection->executeQuery('SET FOREIGN_KEY_CHECKS = 1;'); + } else { + $connection->query('SET FOREIGN_KEY_CHECKS = 1;'); + } if (self::$metadata) { // it need for better performance diff --git a/src/Services/DatabaseTools/ORMDatabaseTool.php b/src/Services/DatabaseTools/ORMDatabaseTool.php index fa5f96bf..e30acd4e 100644 --- a/src/Services/DatabaseTools/ORMDatabaseTool.php +++ b/src/Services/DatabaseTools/ORMDatabaseTool.php @@ -212,7 +212,12 @@ protected function disableForeignKeyChecksIfApplicable(): void return; } - $this->connection->query('SET FOREIGN_KEY_CHECKS=0'); + if (method_exists($this->connection, 'executeQuery')) { + $this->connection->executeQuery('SET FOREIGN_KEY_CHECKS=0'); + } else { + $this->connection->query('SET FOREIGN_KEY_CHECKS=0'); + } + $this->shouldEnableForeignKeyChecks = true; } @@ -226,7 +231,12 @@ protected function enableForeignKeyChecksIfApplicable(): void return; } - $this->connection->query('SET FOREIGN_KEY_CHECKS=1'); + if (method_exists($this->connection, 'executeQuery')) { + $this->connection->executeQuery('SET FOREIGN_KEY_CHECKS=1'); + } else { + $this->connection->query('SET FOREIGN_KEY_CHECKS=1'); + } + $this->shouldEnableForeignKeyChecks = false; } diff --git a/src/Services/DatabaseTools/ORMSqliteDatabaseTool.php b/src/Services/DatabaseTools/ORMSqliteDatabaseTool.php index 715a7afe..9b3f4f54 100644 --- a/src/Services/DatabaseTools/ORMSqliteDatabaseTool.php +++ b/src/Services/DatabaseTools/ORMSqliteDatabaseTool.php @@ -136,7 +136,12 @@ protected function disableForeignKeyChecksIfApplicable(): void return; } - $this->connection->query('PRAGMA foreign_keys = 0'); + if (method_exists($this->connection, 'executeQuery')) { + $this->connection->executeQuery('PRAGMA foreign_keys = 0'); + } else { + $this->connection->query('PRAGMA foreign_keys = 0'); + } + $this->shouldEnableForeignKeyChecks = true; } @@ -150,7 +155,12 @@ protected function enableForeignKeyChecksIfApplicable(): void return; } - $this->connection->query('PRAGMA foreign_keys = 1'); + if (method_exists($this->connection, 'executeQuery')) { + $this->connection->executeQuery('PRAGMA foreign_keys = 1'); + } else { + $this->connection->query('PRAGMA foreign_keys = 1'); + } + $this->shouldEnableForeignKeyChecks = false; }