Skip to content

Commit 1828e89

Browse files
committed
Omit implicit indexes in Table::edit()
1 parent b075768 commit 1828e89

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/Schema/Table.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use Doctrine\Deprecations\Deprecation;
2424
use LogicException;
2525

26+
use function array_diff_key;
2627
use function array_map;
2728
use function array_merge;
2829
use function array_values;
@@ -1002,7 +1003,7 @@ public function edit(): TableEditor
10021003
$editor = self::editor()
10031004
->setName($this->getObjectName())
10041005
->setColumns(...array_values($this->_columns))
1005-
->setIndexes(...array_values($this->_indexes))
1006+
->setIndexes(...array_values(array_diff_key($this->_indexes, $this->implicitIndexNames)))
10061007
->setPrimaryKeyConstraint($this->primaryKeyConstraint)
10071008
->setUniqueConstraints(...array_values($this->uniqueConstraints))
10081009
->setForeignKeyConstraints(...array_values($this->_fkConstraints));

tests/Schema/TableTest.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Doctrine\DBAL\Schema\Exception\PrimaryKeyAlreadyExists;
1414
use Doctrine\DBAL\Schema\ForeignKeyConstraint;
1515
use Doctrine\DBAL\Schema\Index;
16+
use Doctrine\DBAL\Schema\Index\IndexType;
1617
use Doctrine\DBAL\Schema\Name\Identifier;
1718
use Doctrine\DBAL\Schema\PrimaryKeyConstraint;
1819
use Doctrine\DBAL\Schema\SchemaException;
@@ -716,7 +717,15 @@ public function testAddingFulfillingUniqueIndexOverridesImplicitForeignKeyConstr
716717

717718
self::assertCount(1, $localTable->getIndexes());
718719

719-
$localTable->addUniqueIndex(['id'], 'explicit_idx');
720+
$localTable = $localTable->edit()
721+
->addIndex(
722+
Index::editor()
723+
->setUnquotedName('explicit_idx')
724+
->setType(IndexType::UNIQUE)
725+
->setUnquotedColumnNames('id')
726+
->create(),
727+
)
728+
->create();
720729

721730
self::assertCount(1, $localTable->getIndexes());
722731
self::assertTrue($localTable->hasIndex('explicit_idx'));

0 commit comments

Comments
 (0)