UpdateDatabase/MysqlEngineCharset.php
[Pman.Core] / UpdateDatabase / MysqlEngineCharset.php
index 6ec6706..5ea6d5f 100644 (file)
@@ -7,8 +7,8 @@
 class Pman_Core_UpdateDatabase_MysqlEngineCharset {
     
     var $dburl;
-    var $schema;
-    var $links;
+    var $schema = array();
+    var $links = array();
     
     function __construct()
     {
@@ -32,10 +32,14 @@ class Pman_Core_UpdateDatabase_MysqlEngineCharset {
         $ff->generateDataobjectsCache(true);
         $this->dburl = parse_url($ff->database);
         
+         
         $dbini = 'ini_'. basename($this->dburl['path']);
         
         
-        $iniCache = $ff->DB_DataObject[$dbini];
+        $iniCache = isset( $ff->PDO_DataObject) ?  $ff->PDO_DataObject['schema_location'] : $ff->DB_DataObject[$dbini];
+        if (!file_exists($iniCache)) {
+            return;
+        }
         
         $this->schema = parse_ini_file($iniCache, true);
         $this->links = parse_ini_file(preg_replace('/\.ini$/', '.links.ini', $iniCache), true);
@@ -110,10 +114,14 @@ class Pman_Core_UpdateDatabase_MysqlEngineCharset {
         // first check if database is using this format.
         
         
-        
-        $db = DB_DataObject::factory('core_enum')->getDatabaseConnection();
-        $views = $db->getListOf(  'views');
-        
+        $dbo = DB_DataObject::factory('core_enum');
+        if (is_a($dbo, 'PDO_DataObject')) {
+            
+            $views = $dbo->generator()->introspection()->getListOf('views');
+        } else {
+            $db = DB_DataObject::factory('core_enum')->getDatabaseConnection();
+            $views = $db->getListOf( 'views');  // needs updated pear... 
+        }