问题
This is the info they gave me for the DB
HOST: <ip>
PORT: <port>
DB NAME: <name>
DB USER : <user>
DB PASSWORD: <password>
SERVICE: <service name>
CHARSET: WE8MSWIN1252
My parameters.yml looks like this
parameters:
database_driver: oci8
database_host: <ip>
database_port: <port>
database_name: <name>
database_user: <user>
database_password: <password>
database_service: true
database_charset: WE8MSWIN1252
My guess is that I'm missing the service name, but I don't know how to set it up since database_service only accepts boolean.
Thank you in advance!
回答1:
Checkout getEasyConnectionString method (it was called differently in previous versions od doctrine as far as I know.). According to this you have two options:
- Configure connection using separate parameters.
Your parameters.yml file is missing database_servicename parameter you got.
So complete parameters.yml file:
parameters:
database_driver: oci8
database_host: <ip>
database_port: <port>
database_name: <name>
database_user: <user>
database_password: <password>
database_service: true
database_servicename: <servicename>
database_charset: WE8MSWIN1252
You need to modify your config.yml because it probably doesn't have all parameters set there.
config.yml:
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: %database_charset%
service: %database_service% #this you don't have probably
servicename: %database_servicename% #this you don't have probably
- Pass whole
dsnstring as adbnameparameter
Your parameters.yml file:
parameters:
database_driver: oci8
database_user: <user>
database_password: <password>
database_charset: WE8MSWIN1252
database_name: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<host>)(PORT=<port>))(CONNECT_DATA=(SERVICE_NAME=<service_name>)))
来源:https://stackoverflow.com/questions/26942066/oracle-database-error-in-symfony2-doctrine-is-parameters-yml-setup-correctly