Bonjour,

Je développe une appli web, reposant sur le framework PHP Symfony qui utilise l'ORM Propel pour générer un modèle objet à partir d'une base PostGRE SQL.

Or il y un bug Propel sur la génération de modèle avec ce type de BDD. Propel attribue des séquence nommées '[nom_table]_seq' là ou PostGRE SQL les nomme '[nom_table]_[nom_colonne_id]_seq'.

Pour remédier à ce problème, j'ai trouvé le morceau de code que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// add an id-method-parameter if we have a sequence that matches table_colname_seq
//
//
$pkey = $table->getPrimaryKey();
if ($pkey) {
  $cols = $pkey->getColumns();
  if (count($cols) === 1) {
    $col = array_shift($cols);
    if ($col->isAutoIncrement()) {
      $seq_name = $table->getName().'_'.$col->getName().'_seq';
      if ($table->getDatabase()->isSequence($seq_name)) {
        $idMethodParameterNode = $this->doc->createElement("id-method-parameter");
        $idMethodParameterNode->setAttribute("value", $seq_name);
        $node->appendChild($idMethodParameterNode);
      }
    }
  }
}
Le problème est que le test isSequence ne passe pas. Je pensais donc le désactiver en pariant sur la chose suivante :
Une colonne de table, clé primaire à elle toute seule ET auto-incrémentée EST une séquence.

Je m'en remets donc à des utilisateurs avertis pour savoir ce qu'il en est et éventuellement connaître les cas où mon jugement s'avère faux.

Merci d'avance