You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With a custom calculated index, the schema tool fails with an exception:
Argument #1 ($column) must be of type string, null given, called in /www/vendor/doctrine/dbal/src/Schema/Index.php on line 72
The index i created is CREATE INDEX json_author ON auction_json_indexed ( (JSON_VALUE(item, '$.author' RETURNING CHAR(255))) )
Current behavior
Exception trace:
at /www/vendor/doctrine/dbal/src/Schema/Index.php:81
Doctrine\DBAL\Schema\Index->_addColumn() at /www/vendor/doctrine/dbal/src/Schema/Index.php:72
Doctrine\DBAL\Schema\Index->__construct() at /www/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php:1500
Doctrine\DBAL\Schema\AbstractSchemaManager->_getPortableTableIndexesList() at /www/vendor/doctrine/dbal/src/Schema/MySQLSchemaManager.php:153
Doctrine\DBAL\Schema\MySQLSchemaManager->_getPortableTableIndexesList() at /www/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php:424
Doctrine\DBAL\Schema\AbstractSchemaManager->doListTables() at /www/vendor/doctrine/dbal/src/Schema/MySQLSchemaManager.php:66
Doctrine\DBAL\Schema\MySQLSchemaManager->listTables() at /www/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php:1651
Doctrine\DBAL\Schema\AbstractSchemaManager->createSchema() at /www/vendor/doctrine/dbal/src/Schema/AbstractSchemaManager.php:1663
Doctrine\DBAL\Schema\AbstractSchemaManager->introspectSchema() at /www/vendor/doctrine/migrations/src/Generator/DiffGenerator.php:117
Doctrine\Migrations\Generator\DiffGenerator->createFromSchema() at /www/vendor/doctrine/migrations/src/Generator/DiffGenerator.php:63
Doctrine\Migrations\Generator\DiffGenerator->generate() at /www/vendor/doctrine/migrations/src/Tools/Console/Command/DiffCommand.php:135
Doctrine\Migrations\Tools\Console\Command\DiffCommand->execute() at /www/vendor/symfony/console/Command/Command.php:279
Symfony\Component\Console\Command\Command->run() at /www/vendor/symfony/console/Application.php:1047
Symfony\Component\Console\Application->doRunCommand() at /www/vendor/symfony/framework-bundle/Console/Application.php:123
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /www/vendor/symfony/console/Application.php:316
Symfony\Component\Console\Application->doRun() at /www/vendor/symfony/framework-bundle/Console/Application.php:77
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /www/vendor/symfony/console/Application.php:167
Symfony\Component\Console\Application->run() at /www/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php:49
Symfony\Component\Runtime\Runner\Symfony\ConsoleApplicationRunner->run() at /www/vendor/autoload_runtime.php:29
Expected behavior
I would expect the schema tool to ignore an index without column, as it was not defined by doctrine.
How to reproduce
Create the index from the description, then run the doctrine:migrations:diff command.
Workaround
I added a check in AbstractSchemaManager::_getPortableTableIndexesList right before creating the new $index instance: if (! $defaultPrevented && ! in_array(null, $data['columns'], true)) {. I am not sure if that is a reasonable fix or has other side effects. That change would hide the index from doctrine.
Of note: With postgres, I get no error and the index is not seen in the schema tool.
The text was updated successfully, but these errors were encountered:
Bug Report
Summary
With a custom calculated index, the schema tool fails with an exception:
The index i created is
CREATE INDEX json_author ON auction_json_indexed ( (JSON_VALUE(item, '$.author' RETURNING CHAR(255))) )
Current behavior
Expected behavior
I would expect the schema tool to ignore an index without column, as it was not defined by doctrine.
How to reproduce
Create the index from the description, then run the
doctrine:migrations:diff
command.Workaround
I added a check in
AbstractSchemaManager::_getPortableTableIndexesList
right before creating the new$index
instance:if (! $defaultPrevented && ! in_array(null, $data['columns'], true)) {
. I am not sure if that is a reasonable fix or has other side effects. That change would hide the index from doctrine.Of note: With postgres, I get no error and the index is not seen in the schema tool.
The text was updated successfully, but these errors were encountered: