Fix migrateUtf8mb4 for special database names
authorJ0WI <J0WI@users.noreply.github.com>
Tue, 2 Mar 2021 00:30:51 +0000 (00:30 +0000)
committerGitHub <noreply@github.com>
Tue, 2 Mar 2021 00:30:51 +0000 (00:30 +0000)
CRM/Core/BAO/SchemaHandler.php

index 52f08c45139e7492abab4dc3a8bf1ecaa8a27401..cd294c1b5fe666eae617ca9026bf66e739e5e727 100644 (file)
@@ -809,10 +809,10 @@ MODIFY      {$columnName} varchar( $length )
     }
 
     foreach ($databases as $database) {
-      CRM_Core_DAO::executeQuery("ALTER DATABASE $database CHARACTER SET = $newCharSet COLLATE = $newCollation");
+      CRM_Core_DAO::executeQuery("ALTER DATABASE `{$database}` CHARACTER SET = $newCharSet COLLATE = $newCollation");
       $dao = CRM_Core_DAO::executeQuery("SHOW TABLE STATUS FROM `{$database}` WHERE Engine = 'InnoDB' AND (" . implode(' OR ', $tableNameLikePatterns) . ")");
       while ($dao->fetch()) {
-        $tables["{$database}.{$dao->Name}"] = [
+        $tables["`{$database}`.`{$dao->Name}`"] = [
           'Engine' => $dao->Engine,
         ];
       }
@@ -825,7 +825,7 @@ MODIFY      {$columnName} varchar( $length )
       $logging_database = $dsn['database'];
       $dao = CRM_Core_DAO::executeQuery("SHOW TABLE STATUS FROM `{$logging_database}` WHERE Engine <> 'MyISAM' AND (" . implode(' OR ', $logTableNameLikePatterns) . ")");
       while ($dao->fetch()) {
-        $tables["{$logging_database}.{$dao->Name}"] = [
+        $tables["`{$logging_database}`.`{$dao->Name}`"] = [
           'Engine' => $dao->Engine,
         ];
       }