Exemple #1
0
 public function parseTables(DbSimple_Mysql $db)
 {
     $prefix = $db->getPrefix();
     foreach ($db->selectCol("SHOW TABLES LIKE ?", $prefix . '%') as $tablename) {
         if (strlen($prefix) && strpos($tablename, $prefix) !== 0) {
             continue;
         }
         // other prefix?
         $name = substr($tablename, strlen($prefix));
         $table = new Am_DbSync_Table($name);
         foreach ($db->select("DESCRIBE ?#", $tablename) as $row) {
             $table->addField(Am_DbSync_Field::createFromDb($row));
         }
         $indexes = array();
         foreach ($db->select("SHOW INDEX FROM ?#", $tablename) as $row) {
             $indexes[$row['Key_name']][] = $row;
         }
         foreach ($indexes as $indexRows) {
             $table->addIndex(Am_DbSync_Index::createFromDb($indexRows));
         }
         $this->addTable($table);
     }
 }