DDC-214: schema-tool --complete-update throw PDOException on DROP INDEX #265

Open
opened 2026-01-22 12:32:42 +01:00 by admin · 0 comments
Owner

Originally created by @doctrinebot on GitHub (Dec 16, 2009).

Originally assigned to: @beberlei on GitHub.

Jira issue originally created by user rickdt:

Here is the stack trace

SchemaTool: exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1025 Error on rename of './fna*common/#sql-665_60b' to './fna_common/fna_owned*insurance' (errno: 150)' in /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/DBAL/Connection.php:571
Stack trace:
#0 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/DBAL/Connection.php(571): PDO->query('DROP INDEX fna_...')
#1 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/SchemaTool.php(537): Doctrine\DBAL\Connection->execute('DROP INDEX fna_...')
#2 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php(217): Doctrine\ORM\Tools\SchemaTool->updateSchema(Array, false)
#3 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/Cli/CliController.php(190): Doctrine\ORM\Tools\Cli\Tasks\SchemaToolTask->run()
#4 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine.php(19): Doctrine\ORM\Tools\Cli\CliController->run(Array)
#5 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine(4): include('/home/eric/Zend...')
#6 {main}

#0 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/Cli/CliController.php(190): Doctrine\ORM\Tools\Cli\Tasks\SchemaToolTask->run()
#1 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine.php(19): Doctrine\ORM\Tools\Cli\CliController->run(Array)
#2 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine(4): include('/home/eric/Zend...')
#3 {main}

I think the problem is in the Schema Comparator. It generate a DROP for a foreign key index.

If you compare the index definition from database and from metadata you will see that the foreign key index is present only in the definition obtained from database.

Database :

Array
(
    [primary] => Doctrine\DBAL\Schema\Index Object
        (
            [_columns:protected] => Array
                (
                    [0] => id
                )

            [_isUnique:protected] => 1
            [_isPrimary:protected] => 1
            [_name:protected] => PRIMARY
        )

    [fna*client*id] => Doctrine\DBAL\Schema\Index Object
        (
            [_columns:protected] => Array
                (
                    [0] => fna*client*id
                )

            [_isUnique:protected] =>
            [_isPrimary:protected] =>
            [*name:protected] => fna_client*id
        )

)

From metadata :

Array
(
    [primary] => Doctrine\DBAL\Schema\Index Object
        (
            [_columns:protected] => Array
                (
                    [0] => id
                )

            [_isUnique:protected] => 1
            [_isPrimary:protected] => 1
            [_name:protected] => primary
        )

)
Originally created by @doctrinebot on GitHub (Dec 16, 2009). Originally assigned to: @beberlei on GitHub. Jira issue originally created by user rickdt: Here is the stack trace ``` SchemaTool: exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1025 Error on rename of './fna*common/#sql-665_60b' to './fna_common/fna_owned*insurance' (errno: 150)' in /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/DBAL/Connection.php:571 Stack trace: #0 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/DBAL/Connection.php(571): PDO->query('DROP INDEX fna_...') #1 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/SchemaTool.php(537): Doctrine\DBAL\Connection->execute('DROP INDEX fna_...') #2 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php(217): Doctrine\ORM\Tools\SchemaTool->updateSchema(Array, false) #3 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/Cli/CliController.php(190): Doctrine\ORM\Tools\Cli\Tasks\SchemaToolTask->run() #4 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine.php(19): Doctrine\ORM\Tools\Cli\CliController->run(Array) #5 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine(4): include('/home/eric/Zend...') #6 {main} #0 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/lib/Doctrine/ORM/Tools/Cli/CliController.php(190): Doctrine\ORM\Tools\Cli\Tasks\SchemaToolTask->run() #1 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine.php(19): Doctrine\ORM\Tools\Cli\CliController->run(Array) #2 /home/eric/Zend/workspaces/DefaultWorkspace7/fna/application/scripts/doctrine/doctrine(4): include('/home/eric/Zend...') #3 {main} ``` I think the problem is in the Schema Comparator. It generate a DROP for a foreign key index. If you compare the index definition from database and from metadata you will see that the foreign key index is present only in the definition obtained from database. Database : ``` Array ( [primary] => Doctrine\DBAL\Schema\Index Object ( [_columns:protected] => Array ( [0] => id ) [_isUnique:protected] => 1 [_isPrimary:protected] => 1 [_name:protected] => PRIMARY ) [fna*client*id] => Doctrine\DBAL\Schema\Index Object ( [_columns:protected] => Array ( [0] => fna*client*id ) [_isUnique:protected] => [_isPrimary:protected] => [*name:protected] => fna_client*id ) ) ``` From metadata : ``` Array ( [primary] => Doctrine\DBAL\Schema\Index Object ( [_columns:protected] => Array ( [0] => id ) [_isUnique:protected] => 1 [_isPrimary:protected] => 1 [_name:protected] => primary ) ) ```
admin added the Bug label 2026-01-22 12:32:42 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#265