Configurando postgresql en Joomla

Crear una Web con Joomla Foros Joomla! 3.0 Componentes Joomla 3.0 Configurando postgresql en Joomla

Mostrando 1 respuesta al debate
  • Autor
    Entradas
    • #154002
      lauradp888lauradp888
      Participante

      Hola, estoy intentando migrar una web de Joomla con Mysqli de un servidor a otro pero pasando esa MySqli a PostgreSQL. Ya he hecho la exportación de la MySQL a la PostgreSQL y solo me queda adaptar el archivo ‘configuration.php’ de mi sitio a la nueva base de datos de PostgreSQL. ¿Alguien puede ayudarme?
      Con PostgreSQL entra en juego el puerto necesario para el string de conexión y también definir el esquema a conectarse (en caso de no ser ‘public’ el que viene por defecto, como es mi caso).
      Estas son las variables a cumplimentar para la config de la BBDD pero no logro que funcione. ¿donde pongo el puerto y el esquema al que conectarse? no veo ninguna variable para el puerto ni para el esquema
      public $dbtype = ‘postgresql’;
      public $host = ‘host_name’ ; // (en mi caso no es localhost ya que se trata de una BD externa)
      public $user = ‘user’;
      public $password = ‘pass’;
      public $db = ‘db’;
      public $dbprefix = ‘prefix’;

      Rellenando la configuracion de mi sitio tengo siempre este error: Error displaying the error page: Application Instantiation Error: Error connecting to PGSQL database.

      Estoy convencida de que me falta alguna variable para la correcta conexión con PostgreSQL

    • #154003
      lauradp888lauradp888
      Participante

      He encontrado como indicar el puerto para realizar la conexión correctamente. Se hace en la clase JDatabaseDriverPostgresql desde el archivo de configuracion postgresql.php ubicado en sitio_web/libraries/joomla/database/driver/postgresql.php

      Desde ahí, en la función ‘connect’ incluyes en el string de conexión la variable del puerto. De este modo:

      $dsn = “host={$this->options[‘host’]} dbname={$this->options[‘database’]} user={$this->options[‘user’]} password={$this->options[‘password’]} port={$this->options[‘port’]}”;

      Debes declarar dentro del constructor en el objeto ‘options’ el campo port

      public function __construct( $options )
      {
      $options[‘host’] = (isset($options[‘host’])) ? $options[‘host’] : ‘localhost’;
      $options[‘port’] = (isset($options[‘port’])) ? $options[‘port’] : ”;
      $options[‘user’] = (isset($options[‘user’])) ? $options[‘user’] : ”;
      $options[‘password’] = (isset($options[‘password’])) ? $options[‘password’] : ”;
      $options[‘database’] = (isset($options[‘database’])) ? $options[‘database’] : ”;

      // Finalize initialization
      parent::__construct($options);
      }

      Y desde el archivo configuration.php del directorio raiz del sitio_web incluir esta variable
      public $port = ‘1234’;

      Con esto, la conexión se realiza correctamente. Los errores que tengo ahora son relacionados con el modo de llamar a las tablas en las queries. Al ser postgreSQL las consultas deben ser del tipo
      SELECE * FROM nombre_esquema.nombre_tabla WHERE …

      ¿Hay algún modo de indicar el nombre del esquema a nivel de configuración en lugar de editarlo en las querys?
      No logro encontrar los scripts con las querys entre los directorios de joomla.

      Muchas gracias,

Mostrando 1 respuesta al debate
  • Debes estar registrado para responder a este debate.
Si te ha servido... ¡ Compartelo en tus Redes Sociales !