[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dolibarr-dev] proposition de patch pour pgsql.lib.php
From: |
Raphaël Berlamont |
Subject: |
[Dolibarr-dev] proposition de patch pour pgsql.lib.php |
Date: |
Mon, 9 Jul 2012 02:08:41 +0200 |
Hello,
suite à la lecture de ce thread sur le forum (
http://www.dolibarr.fr/forum/529-bugs-avec-postgresql/31421-mise-a-jour-vers-311
), je confirme ce problème aussi avec une installation fraîche sur une
base postgresql, à savoir que l'installation ne se déroule pas
correctement, indiquant que l'installateur n'a pu se connecter sur la
base «dolibarr» (mais l'étape précédente comme quoi il a pu su
connecter à la base de données est OK).
Pour y remédier, j'ai dû dans un premier temps coller l'ancienne lib
de la 3.1.0, et constater que en effet, comme indiqué sur le wiki, ça
fonctionne.
J'ai regardé un peu la diff entre les deux versions, et après
dicothomie (je ne suis pas développeur), il s'avère que dans la
nouvelle lib, le nom de la base de données ne semble pas être
initialisé après la connexion réussite. Le fichier
«install/etape1.php», ligne 423, vérifiant que le nom de la base a
correctement été initialisé, ce dernier estime qu'il y a un problème
et affiche une erreur. Voici le bout de code à l'origine de message
dans «install/etape1.php» :
=================================
[…]
if ($db->database_selected == 1)
{
…
}
else
{
…
dolibarr_install_syslog("etape1: connexion to database
".$conf->db->name.", by user : ".$conf->db->user." has failed",
LOG_ERR);
…
}
[…]
=================================
Voici le diff entre la version originale et la version que j'ai
modifié et qui semble fonctionner jusqu'à maintenant :
=================================
--- dolibarr/htdocs/lib/databases/pgsql.lib.php-ori 2012-07-09
01:05:11.000000000 +0200
+++ dolibarr/htdocs/lib/databases/pgsql.lib.php 2012-07-09
01:39:30.123714395 +0200
@@ -374,6 +374,12 @@
$con_string = "host='".$host."' port='".$port."'
dbname='".$name."' user='".$login."' password='".$passwd."'";
$this->db = pg_connect($con_string);
+ if ($this->db)
+ {
+ $this->database_name = $name;
+ pg_set_error_verbosity($this->db,
PGSQL_ERRORS_VERBOSE); // Set
verbosity to max
+
+ }
}
else
{
=================================
Bon, encore une fois, je ne suis pas développeur, je raconte donc
peut-être des cracks. Cela dit, sur mon serveur, j'ai tout réinstallé
avec ce patch et ça fonctionne. :)
Bonne journée,
--
Raphaël Berlamont
- [Dolibarr-dev] proposition de patch pour pgsql.lib.php,
Raphaël Berlamont <=