/** * @param \Doctrine\DBAL\Schema\Table $localTable * @param \Doctrine\DBAL\Schema\ForeignKeyConstraint $foreignKey * * @return \Doctrine\DBAL\Schema\SchemaException */ public static function namedForeignKeyRequired(Table $localTable, ForeignKeyConstraint $foreignKey) { return new self("The performed schema operation on " . $localTable->getName() . " requires a named foreign key, " . "but the given foreign key from (" . implode(", ", $foreignKey->getColumns()) . ") onto foreign table " . "'" . $foreignKey->getForeignTableName() . "' (" . implode(", ", $foreignKey->getForeignColumns()) . ") is currently " . "unnamed."); }
/** * @param ForeignKeyConstraint $key1 * @param ForeignKeyConstraint $key2 * @return bool */ public function diffForeignKey(ForeignKeyConstraint $key1, ForeignKeyConstraint $key2) { if (array_map('strtolower', $key1->getLocalColumns()) != array_map('strtolower', $key2->getLocalColumns())) { return true; } if (array_map('strtolower', $key1->getForeignColumns()) != array_map('strtolower', $key2->getForeignColumns())) { return true; } if (strtolower($key1->getForeignTableName()) != strtolower($key2->getForeignTableName())) { return true; } if ($key1->onUpdate() != $key2->onUpdate()) { return true; } if ($key1->onDelete() != $key2->onDelete()) { return true; } return false; }