public static function getTableInfo($tblName, $connectionName = "default") { if (isset(self::$metadata[$tblName])) { return self::$metadata[$tblName]; } $className = "Schema_" . convert_to_modelname($tblName); if (Sabel::using($className)) { $cols = array(); $schemaClass = new $className(); foreach ($schemaClass->get() as $colName => $info) { $co = new Sabel_Db_Metadata_Column(); $co->name = $colName; foreach ($info as $key => $val) { $co->{$key} = $val; } $cols[$colName] = $co; } $tblSchema = new Sabel_Db_Metadata_Table($tblName, $cols); $properties = $schemaClass->getProperty(); $tblSchema->setTableEngine($properties["tableEngine"]); $tblSchema->setUniques($properties["uniques"]); $tblSchema->setForeignKeys($properties["fkeys"]); } else { $schemaObj = Sabel_Db::createMetadata($connectionName); $tblSchema = $schemaObj->getTable($tblName); } return self::$metadata[$tblName] = $tblSchema; }
public function getTable($tblName) { $columns = $this->createColumns($tblName); $schema = new Sabel_Db_Metadata_Table($tblName, $columns); $schema->setForeignKeys($this->getForeignKeys($tblName)); $schema->setUniques($this->getUniques($tblName)); return $schema; }