Details
Description
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
)
)
I take the index definition from DBAL/Schema/Comparator:207