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 :
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é.>> 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
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 !!
Partager