/** * @param Table $table */ protected function analyseIndexes(Table $table) { $tableName = $table->getName(); // Analyse indexes $indexes = $this->driver->getIndexes($tableName); $keys = $this->driver->getForeignKeys($tableName); foreach ($indexes as $index) { foreach ($index['columns'] as $col) { $column = $table->getColumn($col); $column->setPrimary($index['primary']); $column->setUnique($index['unique']); $column->setIndex(TRUE); } } foreach ($keys as $key) { $column = $table->getColumn($key['local']); $column->setForeignKey($foreign = new ForeignKey()); $foreign->setSourceTable($table->getName()); $foreign->setSourceColumn($key['local']); $foreign->setReferenceTable($key['table']); $foreign->setReferenceColumn($key['foreign']); } }
/** * @param string $sourceColumn * @param string $referenceTable * @param string $referenceColumn */ public function createForeignKey($sourceColumn, $referenceTable, $referenceColumn) { $key = new ForeignKey(); $key->setSourceColumn($sourceColumn); $key->setReferenceTable($referenceTable); $key->setReferenceColumn($referenceColumn); $this->foreignKey = $key; }