Jelajahi Sumber

#4714 DB engine and collation aren't properly set during upgrade

Alex Trofimov 2 tahun lalu
induk
melakukan
fd6c19d5e5
1 mengubah file dengan 3 tambahan dan 1 penghapusan
  1. 3 1
      upgrade/classes/BxDolUpgradeDb.php

+ 3 - 1
upgrade/classes/BxDolUpgradeDb.php

@@ -69,6 +69,8 @@ class BxDolUpgradeDb
         $this->_sDbname = is_array(BX_DATABASE_NAME) ? array_values(BX_DATABASE_NAME)[0] : BX_DATABASE_NAME;
         $this->_sDbname = is_array(BX_DATABASE_NAME) ? array_values(BX_DATABASE_NAME)[0] : BX_DATABASE_NAME;
         $this->_sUser = is_array(BX_DATABASE_USER) ? array_values(BX_DATABASE_USER)[0] : BX_DATABASE_USER;
         $this->_sUser = is_array(BX_DATABASE_USER) ? array_values(BX_DATABASE_USER)[0] : BX_DATABASE_USER;
         $this->_sPassword = is_array(BX_DATABASE_PASS) ? array_values(BX_DATABASE_PASS)[0] : BX_DATABASE_PASS;
         $this->_sPassword = is_array(BX_DATABASE_PASS) ? array_values(BX_DATABASE_PASS)[0] : BX_DATABASE_PASS;
+        if (defined('BX_DATABASE_ENGINE'))
+            $this->_sStorageEngine = is_array(BX_DATABASE_ENGINE) ? array_values(BX_DATABASE_ENGINE)[0] : BX_DATABASE_ENGINE;
 
 
         @set_exception_handler(array($this, 'pdoExceptionHandler'));
         @set_exception_handler(array($this, 'pdoExceptionHandler'));
     }
     }
@@ -116,7 +118,7 @@ class BxDolUpgradeDb
 				PDO::ATTR_PERSISTENT => $this->_bPdoPersistent
 				PDO::ATTR_PERSISTENT => $this->_bPdoPersistent
 	        ));
 	        ));
 
 
-	    	$this->pdoExec("SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'");
+            $this->pdoExec("SET NAMES 'utf8mb4' COLLATE '" . (defined('BX_DATABASE_COLLATE') ? BX_DATABASE_COLLATE : 'utf8mb4_unicode_ci') . "'");
             $this->pdoExec("SET sql_mode = ''");
             $this->pdoExec("SET sql_mode = ''");
 
 
             $sVer = $this->getVersion();
             $sVer = $this->getVersion();