Si je me souviens bien le site tourne sous une base sqlite. Je ne sais
d'ailleurs pas comment la retrouver chez mon hébergeur lautre.net sans
en faire une sauvegarde via le site. Quand c'est sous une base mysql il
y a un accès chez l'hebergeur via phpmyadmin sur le bureau altern.
Pour l'autre question :
Sais tu d'où vient ce fichier pg.exp.php ??
Ah non pas la moindre idée de ce que c'est ! Au début du fichier il est
écrit ça :
"* Ce fichier contient les fonctions gerant
* les instructions SQL pour PostgreSQL"
Et la ligne 93 c'est juste ça :
"}"
Apparemment un truc fermé mais qui n'a pas été ouvert. Mais où mettre le
"{" ?
Je mets ci-dessous tout le fichier jusqu'à cette ligne 93 :
<?php
/*
*************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2016 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Ce fichier contient les fonctions gerant
* les instructions SQL pour PostgreSQL
*
* @package SPIP\Core\SQL\PostgreSQL
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
define('_DEFAULT_DB', 'spip');
// Se connecte et retourne le nom de la fonction a connexion persistante
// A la premiere connexion de l'installation (BD pas precisee)
// si on ne peut se connecter sans la preciser
// on reessaye avec le login comme nom de BD
// et si ca marche toujours pas, avec "spip" (constante ci-dessus)
// si ca ne marche toujours pas, echec.
// http://code.spip.net/@req_pg_dist
function req_pg_dist($addr, $port, $login, $pass, $db = '', $prefixe = '') {
static $last_connect = array();
if (!charger_php_extension('pgsql')) {
return false;
}
// si provient de selectdb
if (empty($addr) && empty($port) && empty($login) && empty($pass)) {
foreach (array('addr', 'port', 'login', 'pass', 'prefixe') as $a) {
$$a = $last_connect[$a];
}
}
@list($host, $p) = explode(';', $addr);
if ($p > 0) {
$port = " port=$p";
} else {
$port = '';
}
$erreurs = array();
if ($db) {
@$link = pg_connect("host=$host$port dbname=$db user=$login
password='$pass'", PGSQL_CONNECT_FORCE_NEW);
} elseif (!@$link = pg_connect("host=$host$port user=$login
password='$pass'", PGSQL_CONNECT_FORCE_NEW)) {
$erreurs = pg_last_error();
if (@$link = pg_connect("host=$host$port dbname=$login
user=$login password='$pass'", PGSQL_CONNECT_FORCE_NEW)) {
$db = $login;
} else {
$erreurs = pg_last_error();
$db = _DEFAULT_DB;
$link = pg_connect("host=$host$port dbname=$db user=$login
password='$pass'", PGSQL_CONNECT_FORCE_NEW);
}
}
if (!$link) {
$erreurs = pg_last_error();
foreach ($erreurs as $e) {
spip_log('Echec pg_connect. Erreur : ' . $e, 'pg.' . _LOG_HS);
}
return false;
}
if ($link) {
$last_connect = array(
'addr' => $addr,
'port' => $port,
'login' => $login,
'pass' => $pass,
'db' => $db,
'prefixe' => $prefixe,
);
}
spip_log("Connexion vers $host, base $db, prefixe $prefixe " .
($link ? 'operationnelle' : 'impossible'),
'pg.' . _LOG_DEBUG);
return !$link ? false : array(
'db' => $db,
'prefixe' => $prefixe ? $prefixe : $db,
'link' => $link,
);
}
Et, indépendamment de la sauvegarde qui est toujours sqlite,
ton spip tourne t il sur une base mysql, sqlite ou pgsql ?
JLuc
Le 18/05/2017 à 22:12, Etienne a écrit :
Je voudrais supprimer un tas de vieux événements sur un site en
3.1.4, et donc le faire directement dans la base sqlite avec
sqliteman (beaucoup trop long directement dans la partie privée du
site). Question de principe, pas besoin de garder la mémoire de tout.
Donc j'essaie de faire une sauvegarde de la base mais j'ai un message
d'erreur :
"Erreur fatale lors de la copie de la table spip_paquets"
Pourtant j'ai bien une sauvegarde qui apparait dans tmp/dump, qui
pèse environ 7Mo, ce qui est la taille normale qu'elle devrait avoir.
Mais enfin après un message d'erreur j'ose pas trop tenter une
restauration de base à partir de ce fichier là ! Vous en pensez quoi ?
Je ne peux pas faire le test en local parce que quand je crée un site
local je ne peux pas lui attribuer de base sqlite, je suis obligé de
le faire en mysql (je ne sais pas pourquoi, je suis en linux mageia5
et les paquets sqlite sont bien installés).
Par ailleurs, je ne sais pas si ça a un rapport, mais la page
"maintenance technique" contient ce message d'erreur :
*Fatal error*: Cannot redeclare req_pg_dist() (previously declared in
/var/www/alternc/p/moncompte/www/monsite.fr/ecrire/req/pg.php:32) in
*/var/www/alternc/p/moncompte/www/monsite.fr/ecrire/req/pg.exp.php*
on line *93*
A part ça le site fonctionne à peu près bien.
Merci de vos conseils,
Etienne
--
Avez-vous noté ma nouvelle adresse courriel ?
Notez au passage ma clé publique de chiffrage OpenPGP : 86FBA556
Elle vous permet de m'envoyer un courriel privé au lieu d'une carte
postale.
---
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net
Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html
Infos : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
Irc : de l'aide à toute heure : http://spip.net/irc
Merci de l'aide,
Etienne
--
Avez-vous noté ma nouvelle adresse courriel ?
Notez au passage ma clé publique de chiffrage OpenPGP : 86FBA556
Elle vous permet de m'envoyer un courriel privé au lieu d'une carte postale.
---