Estoy tratando de utilizar Doctrina 2 (para Symfony 2) para conectarse a MSSQLServer desde una máquina Linux.Conexión Doctrina 2 al final de MSSQL Symfony 2 En Linux
He instalado pdo_dblib (controlador PDO para FreeTDS/Sybase DB-lib) y puedo conectarme al servidor db a través de tsql en la línea de comandos y desde php cli también. Por lo tanto, sé que esto está funcionando.
En mi archivo de Symfony/app/config/parameters.yml había especificado database_driver = "pdo_sqlsrv" como el controlador de base de datos (como he leído que este sería manejada por db_lib
), pero al intentar ejecutar un comando de base de datos de crear (usando el comando) estoy consiguiendo el error:
Could not create database for connection named could not find driver
entonces un cambio de conductor a database_driver="pdo_dblib"
y ahora estoy recibiendo el error:
[Doctrine\DBAL\DBALException]
The given 'driver' pdo_dblib is unknown, Doctrine currently supports only the following drivers: pdo_mysql, pdo_sqlite, pdo_pgsql, pdo_oci, oci8, ibm_db2, pdo_ibm, pdo_sqlsrv
lo que parece que para conectarse a MSSQL mi único la opción es pdo_sqlsrv
, así que fui a instalar esto. Sin embargo, I have just discovered here, que
The PDO_SQLSRV extension is only compatible with PHP running on Windows.
Así, el controlador admitido por la doctrina y los que están disponibles para usar en Linux parecen ser mutuamente Exclusivo. De la búsqueda no he encontrado ninguna instancia de este problema que se haya resuelto hasta el momento (Un hombre marcó el problema como resuelto, pero cuando leí el hilo simplemente había movido su dev env a un cuadro de Windows ... no exactamente lo que tenía ¡en mente!).
favor, eche un vistazo aquí: http://stackoverflow.com/questions/8492941/doctrine-2-how-to-add-custom-dbal-driver y dejar un mensaje si la respuesta no aceptado hizo ayudarte. – hakre
Hola Hakre, gracias por tu respuesta. He leído tu publicación y entiendo lo que describes, pero ¿de dónde sacaste esta clase? DRIVER_CLASS: Doctrina \ DBAL \ Driver \ MSSQL \ Driver ¿Tuvo que copiar manualmente desde algún lugar? Como mencioné, estoy usando pdo_dblib. Rob Ganly –