Bonjour !

Je cherche à brancher mon application symfony (utilisée avec propel) à une base de données HyperFile accessible via odbc. J'ai des tests en php sans utilisé symfony pour l'accès à la base de données via odbc - j'ai utilisé le driver pdo_odbc et la commande odbc_connect($v_DNS,$v_Utilisateur,$v_Mdp); pour la connexion par exemple. Tout fonctionne à merveille !

Maintenant que les tests sont fait, je voudrais développer mon application complète sous symfony en utilisant propel (j'ai d'abord fait des tests avec Doctrine, mais ça ne fonctionne pas du tout, apparemment Doctrine ne supporte pas odbc :-( )

Mais voilà, une fois mon projet créé (via ligne de commande sous cygdrive car je suis sur windows), je voudrais faire une retroconception de la base de données existante (elle a été créé bien avant que j'arrive dans l'entreprise, je n'ai pas possibilité de la créer moi même car il y a une cinquantaine de tables, de plus, c'est une base hyperfile pour une application client/serveur qui tourne déjà).

Pour ce faire, j'utilise la commande php symfony propel:build-schema mais il me sort l'erreur suivante :
>> propel Running "reverse" phing task
[propel-scema-reverse] There was an error building XML from metadata: could not find driver

Some problems occured when executing the task:
If the exception message is not clear enough, read the output of the task for more information
D'après ce que je comprends de l'erreur, Propel ne trouve pas le driver seulement dans mon fichier php.ini, le driver pdo_odbc est bien activé, de plus les tests fait sous php ont fonctionné comme sus-mentionné.

Pour la configuration du fichier databases.yml & propel.ini, j'ai utilisé la commande suivante :
php symfony configure:database "odbc:PROGIDOC_V5.5" admin(ps: il n'y a pas de mot de passe pour l'accès à la config odbc pour le moment)
Peut-être ai-je fait une erreur dans la config ???

Voici le fichier databases.yml généré :
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
19
20
dev:
  propel:
    param:
      classname: DebugPDO
      debug: { realmemoryusage: true, details: { time: { enabled:true }, slow: { enabled: true, threshold: 0.1 }, mem: { enabled: true }, mempeak: { enabled: true }, memdelta: { enabled: true } } }
test:
  propel:
    param:
      classname: DebugPDO
all:
  propel:
    class: sfPropelDatabase
    param:
      classname: PropelPDO
      dsn: 'obdc:PROGIDOC_V5.5'
      username: admin
      password: null
      encoding: utf8
      persistent: true
      pooling: true

Et voici le fichier propel.ini généré :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
propel.targetPackage       = lib.model
propel.packageObjectModel  = true
propel.project             = progidoc
propel.database            = obdc
propel.database.driver     = obdc
propel.database.url        = obdc:PROGIDOC_V5.5
propel.database.creole.url = ${propel.database.url}
propel.database.user       = admin
propel.database.password   =
 
 
; mysql options
propel.mysql.tableType     = InnoDB
 
propel.addVendorInfo       = true
propel.addGenericAccessors = true
propel.addGenericMutators  = true
propel.addTimeStamp        = true
propel.addValidators       = false
propel.addIncludes         = false
 
propel.useDateTimeClass       = true
propel.defaultTimeStampFormat = Y-m-d H:i:s
propel.defaultTimeFormat      = H:i:s
propel.defaultDateFormat      = Y-m-d
 
propel.schema.validate        = false
propel.samePhpName            = false
propel.disableIdentifierQuoting     = false
propel.emulateForeignKeyConstraints = true
 
; directories
propel.home                    = .
propel.output.dir              = D:\php\progidoc
propel.schema.dir              = ${propel.output.dir}/config
propel.conf.dir                = ${propel.output.dir}/config
propel.phpconf.dir             = ${propel.output.dir}/config
propel.sql.dir                 = ${propel.output.dir}/data/sql
propel.runtime.conf.file       = runtime-conf.xml
propel.php.dir                 = ${propel.output.dir}
propel.default.schema.basename = schema
propel.datadump.mapper.from    = *schema.xml
propel.datadump.mapper.to      = *data.xml
 
propel.builder.addComments  = true
propel.builder.addBehaviors = true
 
; behaviors
propel.behavior.default                        = symfony,symfony_i18n
propel.behavior.symfony.class                  = plugins.sfPropelPlugin.lib.behavior.SfPropelBehaviorSymfony
propel.behavior.symfony_i18n.class             = plugins.sfPropelPlugin.lib.behavior.SfPropelBehaviorI18n
propel.behavior.symfony_i18n_translation.class = plugins.sfPropelPlugin.lib.behavior.SfPropelBehaviorI18nTranslation
propel.behavior.symfony_behaviors.class        = plugins.sfPropelPlugin.lib.behavior.SfPropelBehaviorSymfonyBehaviors
propel.behavior.symfony_timestampable.class    = plugins.sfPropelPlugin.lib.behavior.SfPropelBehaviorTimestampable









Pouvez-vous m'aider ??

Merci d'avance !!