Bonjour,
J'espère que je poste au bon endroit.
Je dois passer de MySql à Oracle une application réalisée avec Symfony. Pour cela, j'ai installé l'instant client et le driver oci8 sur un serveur Debian.
J'ai renseigné les paramètres de la base dans l'application. Puis je lance la commande php qui génère les tables et j'obtiens l'erreur suivante :
Je tente de la résoudre depuis un moment. Je me demande si je suis connectée à la bonne base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $ php app/console doctrine:schema:update --dump-sql [Doctrine\DBAL\DBALException] Unknown database type aq$_subscribers requested, Doctrine\DBAL\Platforms\OraclePlatform may not support it.
Pour mettre à jour la table, doctrine compare les colonnes des tables de la base de données avec les indications du code php. Il a trouvé dans la base une colonne du type « aq$_subscribers » et ce type n’existe pas dans mon code. D’où vient ce aq$_subscribers ?
Voici un extrait des colonnes qui sont comparées jusqu’à l’arrivée de l’erreur (trouvé en affichant les variables qui passent par la fonction qui lance l’erreur) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ****** column name = DB_ID ----------------- data type = number ****** column name = PREV_RESET_SCN ----------------- data type = number ****** column name = PREV_RESET_TIMESTAMP ----------------- data type = number ****** column name = RESET_SCN ----------------- data type = number [ ] ****** column name = RETRY_DELAY ----------------- data type = number ****** column name = RET_TIME ----------------- data type = number ****** column name = SERVICE_NAME ----------------- data type = varchar2 ****** column name = SUBSCRIBERS ----------------- data type = aq$_subscribers
Aucune de ses colonnes n’appartient au code de l’application, je suppose que je mets à jour la mauvaise base. Ou un schéma qui n'est pas vide. J'avoue que je découvre Oracle et je ne retrouve pas mes repères MySql.
Voici mes fichiers de configuration de mon application :
Voici mes fichiers de configuration pour Oracle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 parameters: database_host: 192.168.70.175 database_port: 1521 database_name: xe database_user: system database_password: oracle mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: mailer mailer_password: mailer secret: 5fdd756772ec0555065de867c96ac85023aa943a
1. tnsname.ora
2. listener.ora
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 # /u01/app/oracle/product/11.2.0/xe/network/admin/ # tnsnames.ora Network Configuration File: XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = integration)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
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 # /u01/app/oracle/product/11.2.0/xe/network/admin/ # listener.ora Network Configuration File: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) (ADDRESS = (PROTOCOL = TCP)(HOST = integration)(PORT = 1521)) ) ) DEFAULT_SERVICE_LISTENER = (XE)
3. Variables d’environnement Debian :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_HOME ORACLE_SID=MYDATABASE export ORACLE_SID PATH=$PATH:$ORACLE_HOME/bin export PATH
4. Résultat de lsnrtcl status
5. Apex
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 LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 06-APR-2018 09:17:44 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production Start Date 06-APR-2018 09:03:24 Uptime 0 days 0 hr. 14 min. 19 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Default Service XE Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora Listener Log File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/integration/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=integration)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=integration)(PORT=8080))(Presentation=HTTP)(Session=RAW)) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "XE" has 1 instance(s). Instance "XE", status READY, has 1 handler(s) for this service... Service "XEXDB" has 1 instance(s). Instance "XE", status READY, has 1 handler(s) for this service... The command completed successfully
J’ai créé un schéma MYDATABASE pour l’utilisateur SYSTEM. Ce schéma contient déjà des tables mais je ne retrouve pas les variables citées plus haut (DB_ID, SUBSCRIBERS…).
A votre avis, est-ce que je me connecte au bon listener ? à la bonne base de données ?
Je ne sais plus dans quelle direction chercher.
Merci beaucoup
Partager