Orm: defined index name for relations

This commit is contained in:
Taras Machyshyn
2019-10-08 15:07:55 +03:00
parent ef0d3febd8
commit a9f36a352d
2 changed files with 16 additions and 7 deletions
@@ -560,14 +560,23 @@ class Converter
protected function applyIndexes(&$ormMetadata, $entityType)
{
if (!isset($ormMetadata[$entityType]['indexes'])) {
return;
if (isset($ormMetadata[$entityType]['indexes'])) {
foreach ($ormMetadata[$entityType]['indexes'] as $indexName => &$indexData) {
if (!isset($indexData['key'])) {
$indexType = SchemaUtils::getIndexTypeByIndexDefs($indexData);
$indexData['key'] = SchemaUtils::generateIndexName($indexName, $indexType);
}
}
}
foreach ($ormMetadata[$entityType]['indexes'] as $indexName => &$indexData) {
if (!isset($indexData['key'])) {
$indexType = SchemaUtils::getIndexTypeByIndexDefs($indexData);
$indexData['key'] = SchemaUtils::generateIndexName($indexName, $indexType);
if (isset($ormMetadata[$entityType]['relations'])) {
foreach ($ormMetadata[$entityType]['relations'] as $relationName => &$relationData) {
if (isset($relationData['indexes'])) {
foreach ($relationData['indexes'] as $indexName => &$indexData) {
$indexType = SchemaUtils::getIndexTypeByIndexDefs($indexData);
$indexData['key'] = SchemaUtils::generateIndexName($indexName, $indexType);
}
}
}
}
}
@@ -69,7 +69,7 @@ class Utils
if (isset($entityParams['indexes']) && is_array($entityParams['indexes'])) {
foreach ($entityParams['indexes'] as $indexName => $indexParams) {
$indexType = static::getIndexTypeByIndexDefs($indexParams);
$tableIndexName = static::generateIndexName($indexName, $indexType);
$tableIndexName = isset($indexParams['key']) ? $indexParams['key'] : static::generateIndexName($indexName, $indexType);
if (isset($indexParams['flags']) && is_array($indexParams['flags'])) {
$skipIndex = false;