[Alba-desarrollo] fix del orden de las tabla en propel

Fernando Toledo ftoledo en docksud.com.ar
Jue Ene 17 00:00:52 CET 2008


Encontre este patch que mandaron al trunk del symfony
parece ser que con esto solucionan el orden de las tablas respecto a los FK

+
+  /**
+   * Fixes the ordering of foreign key data, by outputting data a foreign key 
depends on before the table with the foreign key.
+   *
+   * @param array The array with the class names.
+   */
+  public function fixOrderingOfForeignKeyData($classes)
+  {
+    // reordering classes to take foreign keys into account
+    for ($i = 0, $count = count($classes); $i < $count; $i++)
+    {
+      $class = $classes[$i];
+      $tableMap = 
$this->maps[$class]->getDatabaseMap()->getTable(constant($class.'Peer::TABLE_NAME'));
+      foreach ($tableMap->getColumns() as $column)
+      {
+        if ($column->isForeignKey())
+        {
+          $relatedTable = 
$this->maps[$class]->getDatabaseMap()->getTable($column->getRelatedTableName());
+          $relatedTablePos = array_search($relatedTable->getPhpName(), 
$classes);
+
+          // check if relatedTable is after the current table
+          if ($relatedTablePos > $i)
+          {
+            // move related table 1 position before current table
+            $classes = array_merge(
+              array_slice($classes, 0, $i),
+              array($classes[$relatedTablePos]),
+              array_slice($classes, $i, $relatedTablePos - $i),
+              array_slice($classes, $relatedTablePos + 1)
+            );
+
+            // we have moved a table, so let's see if we are done
+            return $this->fixOrderingOfForeignKeyData($classes);
+          }
+        }
+      }
+    }
+
+    return $classes;
+  }
 }

-- 
Dock Sud BBS
http://www.docksud.com.ar
telnet://bbs.docksud.com.ar
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 189 bytes
Descripción: This is a digitally signed message part.
Url        : /pipermail/alba-desarrollo/attachments/20080116/2c81e8ff/attachment.pgp


Más información sobre la lista de distribución Alba-desarrollo