Estoy empezando con CakePHP, pasé por el blog tutorial sin problemas, pero ahora quiero probar con un adecuado sistema de base de datos como usuario postgres. He ajustado el database.php file para que apunte a una base de datos que he creado en mi local postgres ejemplo:

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Postgres',
        'persistent' => false,
        'host' => 'localhost',
        'port' => '5432',
        'login' => 'cakephp',
        'password' => 'cakephp',
        'database' => 'cakephp',
        'schema' => 'blog_tuto',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public $test = array(
        'datasource' => 'Database/Postgres',
        'persistent' => false,
        'host' => 'localhost',
        'port' => '5432',
        'login' => 'cakephp',
        'password' => 'cakephp',
        'database' => 'cakephp',
        'schema' => 'blog_tuto',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}

Yo no tengo problemas con la conexión a esta base de datos con un cliente de SQL, pero CakePHP se queja con el siguiente mensaje:

CakePHP is NOT able to connect to the database.

Database connection "Postgres" is missing, or could not be created.
Selected driver is not enabled

Ya he comprobado que el postgres DboSource clase en la actualidad. El postgres módulo de php instalado también:

$ php -m | grep pg
pdo_pgsql
pgsql 

Lo que me estoy perdiendo? Gracias.

Actualización que me : La salida de phpinfo relacionados con Postgres va a continuación:

pdo_pgsql
PDO Driver for PostgreSQL   enabled
PostgreSQL(libpq) Version   9.1.9
Module version  1.0.2
Revision    $Id: pdo_pgsql.c 321634 2012-01-01 13:15:04Z felipe $

pgsql
PostgreSQL Support  enabled
PostgreSQL(libpq) Version   9.1.9
Multibyte character support     enabled
SSL support     enabled
Active Persistent Links     0
Active Links    0

Directive   Local Value Master Value
pgsql.allow_persistent  On  On
pgsql.auto_reset_persistent Off Off
pgsql.ignore_notice Off Off
pgsql.log_notice    Off Off
pgsql.max_links Unlimited   Unlimited
pgsql.max_persistent    Unlimited   Unlimited

Actualización II : Cuando accede a la aplicación en la actualidad tratando de seguir Ajir sugerencia me sorprendentemente, consiguió un mensaje de error diferente: «error de Autenticación» – lo que significa que CakePHP es ahora capaz de conectar. He instalado Postgres 9.3 hace unos meses y no había de volver a crear el tutorial de objetos; todo lo que tenía que hacer era ejecutar la secuencia de comandos SQL y el tutorial de la aplicación es ahora completamente funcional.

Lo que está mal es probable restringido a Postgres 9.1.

  • Por favor, compruebe que el PostGres módulo ha sido cargado/activado en tu servidor web. O ejecutar phpinfo(); y compruebe que puede ver Postgres módulo se ha cargado y está disponible. La amabilidad de informarnos del resultado.
  • I already verified that the postgres DboSource class in present Usted ha hecho que en la cli, pero es el mensaje de error desde el servidor de la web – que no va a utilizar el mismo php.en el archivo ini.
  • AD7six, lo que el cliente está usted hablando? Como ahora sé que todo mi código se ejecuta en el servidor.
  • Estoy teniendo el mismo problema, estoy usando el Apache/PHP en Mac OS X Mavericks, también estoy usando Codeigniter en este mismo servidor, Codeigniter es capaz de conectarse a postgres sin problema, también hizo un postgres secuencia de comandos de prueba que es también ser capaz de conectarse a postgres, he vuelto a revisar mi cakePHP database.php archivo de configuración, lo que podría comprobar ? gracias — public $default = array( ‘origen de datos’ => ‘/Base de datos de Postgres’, ‘persistente’ => false, ‘host’ => ‘localhost’, ‘login’ => ‘cake’, ‘password’ => ‘cake’, ‘base de datos’ => ‘cake’, ‘esquema’ => ‘cake’);

4 Comentarios

  1. 1

    Esto podría resolver el problema :

    sudo apt-get install php5-pgsql
    • Ya tengo el paquete instalado.
    • ¿has probado a comprobar la CakePHP/Apache/Postgres registros ?
  2. 0

    Esta es probablemente una cuestión relacionada con Postgres 9.1, Cake PHP funciona perfectamente bien con Postgres 9.3. No es una verdadera solución, pero una solución alternativa para solucionar este problema es:

    1. Copia de seguridad de la base de datos(s) organizado por la Postgres 9.1.

    2. Instalar Postgres 9.3 (eventualmente se ejecuta en un puerto alternativo).

    3. Restaurar la base de datos(s) en Postgres 9.3.

    4. Punto de la database.php configuración de Postgres 9.3 (si se está ejecutando en un puerto alternativo).

    5. Quitar Postgres 9.1 (si no es necesario).

  3. 0

    mi configuración : Windows 7, IIS 7.5, php 5.3, postrgres 9.4, cakephp 2.6.3

    que acabo de añadir:

    extension=php_pgsql.dll
    extension=php_pdo_pgsql.dll

    al final de php.archivo ini después de todo(extensiones de php.ini copia de desarrollo).
    Recuerde que los archivos deben ser presentados C:\Program Files (x86)\PHP\v5.3\ext (este es mi camino a la instalación de php)

  4. -1

    por favor, asegúrese de que el esquema que se utiliza es blog_tuto y no public que es el valor predeterminado en Postgresql. Para probarlo, al intentar cambiar de blog_tuto con public.

    Y para evitar problemas de codificación, te sugiero que quitar el comentario de la codificación de línea y poner allí la codificación que se utiliza en la base de datos (por ejemplo, UTF-8, LATIN1);

Dejar respuesta

Please enter your comment!
Please enter your name here