Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Estas en el tema de Problema para conectarse a Postgres a través de Symfony 2 (Doctrine) en el foro de Symfony en Foros del Web. Este es mi primer mensaje en el foro y agradecería mucho que me puedan ayudar. Estoy empezando a usar Symfony, y no logro conectarme correctamente ...
  #1 (permalink)  
Antiguo 10/12/2012, 19:53
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Este es mi primer mensaje en el foro y agradecería mucho que me puedan ayudar. Estoy empezando a usar Symfony, y no logro conectarme correctamente con mi BD Postgres. Tengo instaladas las extensiones de PHP necesarias, tales como PDO, pdo_pgsql, pg_sql, etc. Cuando trato de conectarme directamente a la BD sin usar Symfony se conecta sin problema, pero cuando uso Symfony y específicamente el comando "php app/console doctrine:database:create" me sale el siguiente error: Could not create database for connection named BaseDatos
Could not find driver.

La configuración de la base de datos la hice a través de la dirección: http://localhost/Symfony/web/app_dev.php/_configurator/step/0 y el único campo que no llené fue el Path, debido a que no estoy seguro que debo colocar ahi.

Ojala puedan ayudarme! ya que llevo bastante tiempo con el problema
Muchas Gracias!!

Última edición por juank92; 10/12/2012 a las 20:08
  #2 (permalink)  
Antiguo 10/12/2012, 20:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Que tal juank92,

Bienvenido a FdW, ahora a lo nuestro ;), comprueba el driver en tu config, esta bajo doctrine/dbal/driver, lo tienes como pdo_pgsql ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 10/12/2012, 20:17
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Gracias por tu respuesta masterpuppet!. Acabo de meterme en la siguiente dirección dentro de mi carpeta Symfony: "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql", y ahi se encuentra un archivo llamado Driver.php. ¿Que debo hacer para chequear lo que me acabas de decir?....
  #4 (permalink)  
Antiguo 10/12/2012, 20:29
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

No no, comprueba en tu archivo de configuración, esta en app/config/config.yml, allí deberías tener algo así:

Código YML:
Ver original
  1. doctrine:
  2.     dbal:
  3.         driver: pdo_pgsql o %database_driver%

si es el segundo caso( %database_driver%), comprueba el driver en el archivo app/config/parameters.yml si estas con sf 2.1+ o para versiones inferiores app/config/parameters.ini

si tienes conexiones multiples seria:

Código YML:
Ver original
  1. doctrine:
  2.     dbal:
  3.         connections:
  4.             foo:
  5.                 driver: pdo_pgsql o %database_driver%

el valor debería ser como te comente antes pdo_pgsql
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 10/12/2012, 20:45
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

En el config.yml tengo esto:

# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8

orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true

y en el parameters.yml tengo esto:

parameters:
database_driver: pdo_pgsql
database_host: localhost
database_port: '5432'
database_name: Repositorio
database_user: postgres
database_password: '1234'
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: c97339ef15cebfda4195d40932bbc96c
database_path: null


es decir, creo que todo esta bien segun lo que me estas diciendo
  #6 (permalink)  
Antiguo 10/12/2012, 21:05
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

En teoría esta bien, estas seguro que no tienes una key connections bajo dbal en el entorno que lo estas probando ?, fuera de esto la key database_path no es necesaria para pgsql supongo que es para sqlite, otra pregunta, fuera de Symfony puedes crear una conexión PDO con pqsql ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 10/12/2012, 21:25
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

No tengo ninguna key connections bajo dbal, las key que tengo son las que mostré anteriormente. Me he logrado conectar con la BD pero no a través de una conexión PDO, sino usando las funciones básicas de php para postgres como por ejemplo pg_connect(), pg_query(), etc.

Este problema como que está difícil de resolver =S
  #8 (permalink)  
Antiguo 10/12/2012, 21:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Es que no es lo mismo, intenta crear una conexión PDO, algo así:

Código PHP:
Ver original
  1. $dbh = new PDO("pgsql:dbname=$dbname;host=$host", $username, $password);
__________________
http://es.phptherightway.com/
thats us riders :)
  #9 (permalink)  
Antiguo 10/12/2012, 22:03
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Acabo de crear una conexión PDO sin utilizar el Symfony y me funciona. Acabo de hacer esto:

$conn = new PDO("pgsql:host=localhost;dbname=Repositorio;user= postgres;password=1234");

$sql = 'SELECT * FROM usuario';

foreach ($conn->query($sql) as $row) {

echo $row['nombre'] . "<br>";

echo $row['apellido'] . "<br>";

echo $row['email'] . "<br>";
}

y me devuelve los registros correctamente de la BD

No entiendo que esta pasando =S
  #10 (permalink)  
Antiguo 11/12/2012, 09:03
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

En ese caso vas a tener que mostrar el trace de la excepción a ver si ahí aparece alguna pista mas, porque debajo de dbal esta PDO.
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 11/12/2012, 09:14
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

ok!... otra pregunta, actualmente estoy trabajando en Windows. Sería mas recomendable trabajar en Linux?. Los tutoriales que he visto de Symfony siempre son en Linux, por eso pregunto.

Gracias!
  #12 (permalink)  
Antiguo 13/12/2012, 10:20
 
Fecha de Ingreso: agosto-2011
Ubicación: Caracas
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Acabo de instalar Ubuntu en mi máquina y todo me ha funcionado perfecto hasta los momentos. Hice exactamente lo mismo que estaba haciendo en Windows pero esta vez no me da ningun error y puedo conectarme sin problemas a Postgres. De todas formas si a alguien le ha pasado lo mismo y sabe como solucionarlo que lo diga! =)

Todavía tengo la intriga, y me gustaría saber que puedo hacer para una próxima oportunidad que necesite trabajar en Windows.

Gracias por la ayuda masterpuppet!
  #13 (permalink)  
Antiguo 01/03/2013, 09:50
 
Fecha de Ingreso: marzo-2013
Ubicación: La Habana
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
Información Respuesta: Problema para conectarse a Postgres a través de Symfony 2 (Doctrine)

Hola a todos, me entere de este foro porque al igual que juank92 soynuevo en todo esto de symfony 2 y su amplio mundo, y tenia el mismo problema, pues cuando escribia en la consola de windows "php app/console doctrine:database:create" me devolvia el error "Could not find driver".

Les cuento que luego de dos horas de investigar y de buscar por la red la solucion fue muy sencilla, solo tenia que actualizar el archivo php.ini en la dirección "C:\wamp\bin\php\php5.4.3" (que por cierto, no es el mismo que abre el wamp cuando le das clic al archivo php.ini), descomentarie las extenciones "extension=php_pgsql.dll" y "extension=php_pdo_pgsql.dll" y listo, symfony se conecto al postgres.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.