Problemas con postgres

Quiero migrar una aplicación existente realizada con base de datos postgres y C
a una aplicación Web. Para ello estoy analizando Kumbia. Lo he instalado y esto y haciendo las primeras pruebas y no me estoy pudiendo conectar a la base de datos.

El error es el siguiente:

KumbiaDBException: No se puede conectar a PostgreSQL, verifique q el servicio este arriba y los parámetros de conexión sean correctos
Error Code: 0
En el archivo /srv/www/htdocs/demo/forms/db/adapters/postgresql.php en la línea: 99


En el archivo forms/config/config.ini, puse:

[development]
database.host = localhost
database.username = ayuale
database.password =
database.name = eternum
database.type = postgresql
database.port = 5430

El puerto no es el por defecto de postgres, pero por cuestiones internas debo cambiarlo.

En el archivo forms/dbadapters/postgresql.php, encontre esto en la linea 95:

if($this->Id_Connection = @pg_connect(";host={$this->dbHost} port=5432 user={$this->dbUser} password={$thi....

y lo cambie por esto,

if($this->Id_Connection = @pg_connect(";host={$this->dbHost} port={$this->dbPort} user={$this->dbUser} password={$thi....

Es correcto ?

Con el dbVisualizer, me conecto sin problemas a la base.

Estoy trabajando con Suse Linux 10.3

Comentarios

  • Si esta correcto, ya subi la correccion.

    Gracias.
  • edited 3:08
    Gracias Emilio, pero mi problema sigue, no me puedo conectar.

    Por lo tanto seguí probando, con la linea, y el problema esta en que el argumento dbname, debe estar después del argumento host (o por lo menos antes del user)

    Parece increíble, pero cambie la linea y me funciono.

    Yo estoy usando postgres 7.4 y tal vez ese sea el problema y en las versiones superiores este corregido.

    La linea de conexión me quedo asi:

    if($this->Id_Connection = @pg_connect(";host={$this->dbHost} dbname={$this->dbName} port={$this->dbPort} password={$this->dbPass} ")){

    Ahora anda, y ya tengo mi primer ABM automático funcionando <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
  • Pues hermano muchas felicitaciones por ayudar a corregir ese error, adicionalmente, es weno saber que estas dandole fuertemente a kumbia, adicionalmente, que como sabes tu duda puede ser la de otro mas, te invito a que sies posible coloques ese abm del que hablas en la comunidad del grupo para que otras personas puedan ver tu trabajo y puedan aprender mas de kumbia, te parece?, claro sin ningun compromiso, es solo si lo quieres compartir=??


    Saludos y exitos!
  • edited 3:08
    Hola powerade1

    Lo que hice es muy simple y no tengo problemas en compartirlo, solo que no se si va a ser de mucha ayuda, ya que son pocas lineas de código. Lo demás lo hizo kumbia solo.

    Primero:

    Conectar la base de datos, para eso modifique el archivo:

    config/environment.ini
    &#91;development&#93;
    database&#46;host = localhost
    database&#46;username = ayuale
    database&#46;password = 
    database&#46;name = eternum
    database&#46;type = pgsql
    database&#46;port = 5430
    
    &#91;production&#93;
    database&#46;host = localhost
    database&#46;username = ayuale
    database&#46;password =
    database&#46;name = eternum
    database&#46;type = pgsql
    database&#46;port = 5430
    


    Tuve que modificar la linea 199 de library/kumbia/db/adapters/pgsql.php
    y quedo asi:
    if&#40;$this-&gt;id_connection = pg_connect&#40;&quot;host=&#123;$this-&gt;db_host&#125; port=&#123;$this-&gt;db_port&#125; dbname=&#123;$this-&gt;db_name&#125; user=&#123;$this-&gt;db_user&#125; password=&#123;$this-&gt;db_pass&#125; port=&#123;$this-&gt;db_port&#125;&quot;&#41;&#41;&#123;
    

    En la linea 105 del mismo archivo, hay una asiganción al puerto 5432, y la elimine.
    La linea quedo asi:
    private $db_port;
    


    Despues, creer un controlador en:
    apps/default/controllers, llamado choferes_controller.php
    &lt;?php
    
        class ChoferesController extends StandardForm
        &#123;
            public $scaffold = true; 
            public $source = &quot;choferes&quot;;
            public $schema = &quot;gen&quot;;
        &#125;
    ?&gt;
    

    Y cree un model el app/default/models, llamado choferes.php
    &lt;?php
        class Choferes extends ActiveRecord
        &#123;
          
        &#125;
    ?&gt;
    

    Como ves es muy simple

    Espero les sirva

    Saludos
Sign In or Register to comment.