Details
-
Type:
Sub-task
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0-RC2
-
Component/s: Mapping Drivers
-
Security Level: All
-
Labels:None
-
Environment:FreeBSD, PostgreSQL 8.4
Description
Condition
if (isset($indexes['primary']) && in_array($column->getName(), $indexes['primary']->getColumns())) {
needs the primary key to be named as primary. Discovered this when reverse engineering an existing database.
Fix, that worked for me:
Replace:
if (isset($indexes['primary']) && in_array($column->getName(), $indexes['primary']->getColumns())) {
$fieldMapping['id'] = true;
With:
$primary = false;
foreach ($indexes as $index)
{
if ($index->isPrimary())
{
if (in_array($column->getName(), $index->getColumns()))
}
}
if ($primary){
$fieldMapping['id'] = true;
Fixed.