From 6fd2eaa45df1e07e133e34d03ecceb094f1a9a7f Mon Sep 17 00:00:00 2001 From: jwage Date: Thu, 8 Oct 2009 18:54:19 +0000 Subject: [PATCH] [2.0] Fix to DatabaseDriver so drivers that don't support foreign keys will still work --- lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php b/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php index 5d47a9ee1..adc82214a 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php @@ -68,7 +68,11 @@ class DatabaseDriver implements Driver $metadata->primaryTable['name'] = $tableName; $columns = $this->_sm->listTableColumns($tableName); - $foreignKeys = $this->_sm->listTableForeignKeys($tableName); + try { + $foreignKeys = $this->_sm->listTableForeignKeys($tableName); + } catch (\Doctrine\Common\DoctrineException $e) { + $foreignKeys = array(); + } $ids = array(); $fieldMappings = array(); @@ -102,7 +106,9 @@ class DatabaseDriver implements Driver } if ($ids) { - $metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO); + if (count($ids) == 1) { + $metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO); + } foreach ($ids as $id) { $metadata->mapField($id);