Pagina 1 di 1

Passaggio dalla Versione 1.1.1.a al 2.0

Inviato: lun giu 15, 2009 10:15 am
da bline
Salve,
quale è la procedura per passare al 2.0 senza perdere i dati del 1.1.1.1a?

Inviato: lun giu 15, 2009 12:31 pm
da roby
Ti consiglio di seguire questa procedura:
1) fai il dump dei dati per avere il backup disponibile per ogni evenienza
2) scaricati l'ultimo aggiornamento pubblicato
3) applica l'aggiornamento al db
4) applica l'aggiornamento al client e admin
5) entra in admin e da "superuser->configura sito" imposta le variabili di configurazione secondo le tue necessita'
6) Se utilizzi i collegi, devi fare una modifica a mano perche' il tipo consultazione "Provinciali" e' tornato ad essere standard, cioe' senza collegi. Ora il tipo Provinciali con collegi è disponibile tra i tipi standard. Quindi devi cambiare a mano l'associazione al tipo di consultazione: nella tabella soraldo_ele_consultazione trova il record delle provinciali e nel campo "tipo_cons" sostituisci al valore "1" ora presente il valore "12".
In "Administrator->Consultazioni" puoi impostare la consultazione predefinita per il singolo comune.
Roberto

Inviato: lun feb 22, 2010 11:47 am
da margottid
Anch'io dovrei passare dalla versione 1 alla versione 2, mantenendo i dati presenti, e vorrei approfittarne visto che è uscita la versione 2.0.a.

Dopo aver scaricato l'archivio ZIP dal sito, devo decomprimerlo sulla directory che attualmente contiene la versione 1?
Oppure devo decomprimerlo in una directory "pulita"?
E in quest'ultimo caso, oltre ai loghi dei Comuni presenti in \client\modules\Elezioni\images\, ci sono altri file da recuperare dalla vecchia installazione?

Per quanto riguarda i punti 3) "Applica l'aggiornamento al db" e 4) "Applica l'aggiornamento al client e admin", come devo procedere?
Dove si trovano questi aggiornamenti?
Devo lanciare (da web) il file install.php, oppure sono degli script SQL da applicare a mano?

I parametri presenti nei file "config.php" (delle parti Client e Admin) vengono mantenuti, oppure - anche in caso di upgrade dalla 1 alla 2 - è come se fosse una reinstallazione e riconfigurazione da zero?

Riguardo al punto 6), come faccio a sapere se utilizzo i collegi? Da dove posso vederlo?
(Io sono un informatico, non uso direttamente il programma; in ogni caso, non abbiamo ancora gestito una consultazione Provinciale da quando usiamo Eleonline).

Grazie mille,
Daniele

Inviato: lun feb 22, 2010 12:19 pm
da roby
Decomprimi in una directory pulita, dalla vecchia installazione copiati i config.php di client e admin. E' meglio se lasci solo le righe di connessione al db, qualcosa come questo :
<?php
/************************************************************************/
/* Eleonline - Raccolta e diffusione dei dati elettorali */
/* by Roberto Gigli & Luciano Apolito */
/* http://www.eleonline.it */
/* info@eleonline.it luciano@aniene.net rgigli@libero.it */
/************************************************************************/
/* Config */
/* Amministrazione */
/************************************************************************/

if (strstr($_SERVER['PHP_SELF'],"config.php")) {
Header("Location: index.php");
die();
}



$dbhost ="localhost";
$dbuname ="ele";
$dbpass ="ele";
$dbname ="eleonline";
$prefix ="soraldo";
?>
####################

i loghi dei comuni ora vanno nel db, accedi in admin al menu comuni e li importi cercandoli nella dir della vecchia installazione.
Per il punto 3 avrei bisogno di sapere la versione precisa che hai installata (1.0 oppure 1.2 o altro?)
Per il 4, se hai scaricato la 2.0a non devi applicare altro (per il momento :)
NON devi lanciare il file install.php
Per il punto 6 usi i collegi solo se li hai configurati a mano, cambiando il tipo consultazione. Lo ha fatto solo qualche comune e dopo averci chiesto come fare. Quindi direi che tu non li usi e non devi fare niente.

dalla 1.1.1a alla 2.0

Inviato: lun feb 22, 2010 3:20 pm
da roby
La richiesta era per la 1.1.1a e mi era sfuggito, va inviato a mysql il file: aggiornamento-2.0-20090611.sql
presente nel pacchetto.
Roberto

Da verificare

Inviato: lun feb 22, 2010 8:07 pm
da roby
E' opportuno, considerati i molteplici e diversi update della versione 1.x, verificare la tabella "soraldo_ele_config", consiglio di farne il drop e ricrearla, il codice è questo:

DROP TABLE IF EXISTS `soraldo_config`;
CREATE TABLE `soraldo_config` (
`sitename` varchar(255) NOT NULL default '',
`siteurl` varchar(255) NOT NULL default '',
`site_logo` varchar(255) NOT NULL default '',
`slogan` varchar(255) NOT NULL default '',
`startdate` varchar(50) NOT NULL default '',
`adminmail` varchar(255) NOT NULL default '',
`tema` varchar(25) NOT NULL,
`foot` text NOT NULL,
`language` varchar(3) NOT NULL,
`blocco` enum('0','1') NOT NULL,
`testata` blob,
`nome_testata` varchar(50) NOT NULL,
`fileout` varchar(255) NOT NULL,
`copyright` text NOT NULL,
`Versione` int(3) NOT NULL,
`patch` int(3) NOT NULL,
`siteistat` int(11) NOT NULL,
`multicomune` enum('0','1') NOT NULL,
`flash` enum('0','1') NOT NULL,
`displayerrors` enum('0','1') NOT NULL,
`gkey` varchar(100) NOT NULL,
`googlemaps` enum('0','1') NOT NULL,
`editor` enum('0','1') NOT NULL default '1',
`tema_on` enum('0','1') NOT NULL default '1',
`ed_user` varchar(25) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


--
-- Dumping data for table `soraldo_config`
--


/*!40000 ALTER TABLE `soraldo_config` DISABLE KEYS */;
LOCK TABLES `soraldo_config` WRITE;
INSERT INTO `soraldo_config` VALUES ('','http://','','Sito istituzionale','Maggio 2009','admin@localhost','facebook','<b>Comune di </b><br>\r\nvia - \r\nTel: Fax: \r\n<hr>','it','1','','','','Gpl v3',2,0,1,'1','1','','','0','1','1','Admin');
UNLOCK TABLES;
/*!40000 ALTER TABLE `soraldo_config` ENABLE KEYS */;

Inviato: mar feb 23, 2010 8:47 am
da margottid
Confermo che la versione è la 1.1.1a: ho sempre installato tutti gli aggiornamenti della v1 ogni volta che uscivano.

Nel mio DB, la tabella "soraldo_config" dovrebbe essere al momento inutilizzata, visto che contiene un solo record, e non è uno dei Comuni gestiti (ci sono i dati del Comune di Guidonia Montecelio).
Immagino che questa tabella conterrà quei dati che mi hai detto di togliere dai file "config.php", giusto?

Faccio l'aggiornamento di un DB di test, prima di procedere con il DB di produzione.

Daniele

tabella config

Inviato: mar feb 23, 2010 10:20 am
da roby
La tabella era stata inserita con le versioni precedenti ma non era utilizzata, così è probabile che non sia aggiornata. Ti confermo che dovresti dropparla e ricrearla.
Roberto

Inviato: mar feb 23, 2010 2:51 pm
da margottid
Avendo PHP 5.0.4 e MySQL 4.1, ho dovuto commentare le linee che contengono questa istruzione:

Codice: Seleziona tutto

mysql_set_charset('utf8', $dbi);
che richiedono PHP >= 5.2.3 e MySQL >= 5.0.7.
La mancanza dell'istruzione non sembra comunque dare problemi.

Ho poi confrontato la struttura del vecchio DB con quella del nuovo (usando lo script per la creazione del DB): per chi ne avesse bisogno, o anche per gli autori del software (se volete fare uno script SQL che faccia tutti gli aggiornamenti necessari), vi elenco i passi che ho seguito.

Bisogna ricreare la tabella soraldo_config, come da precedente messaggio, e lanciare il file SQL aggiornamento-2.0-20090611.sql (che ricrea la tabella soraldo_ele_tipo, popolandola con i valori aggiornati).

Bisogna creare la tabella soraldo_doc_cons:

Codice: Seleziona tutto

CREATE TABLE `soraldo_doc_cons` (
  `id_cons` int(11) NOT NULL,
  `id_doc` int(11) NOT NULL,
  `tabella` varchar(25) NOT NULL,
  KEY `id_cons` (`id_cons`,`id_doc`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `soraldo_doc_cons`
--
/*!40000 ALTER TABLE `soraldo_doc_cons` DISABLE KEYS */;
LOCK TABLES `soraldo_doc_cons` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE `soraldo_doc_cons` ENABLE KEYS */;
Alcuni campi della tabella soraldo_ele_candidati vanno modificati:

Codice: Seleziona tutto

ALTER TABLE `soraldo_ele_candidati` MODIFY `cognome` varchar(50) default NULL;
ALTER TABLE `soraldo_ele_candidati` MODIFY `nome` varchar(50) default NULL;
Vanno aggiunti dei campi alla tabella soraldo_ele_comuni:

Codice: Seleziona tutto

ALTER TABLE `soraldo_ele_comuni` ADD `simbolo` text;
ALTER TABLE `soraldo_ele_comuni` ADD `stemma` blob;
ALTER TABLE `soraldo_ele_comuni` ADD `id_cons` int(11) default '0';
La tabella soraldo_ele_conf è abbastanza diversa rispetto alla precedente, pertanto l'ho eliminata (c'era solo un record, contentente degli zeri) e ricreata, popolandola con i valori indicati dallo script:

Codice: Seleziona tutto

DROP TABLE IF EXISTS `soraldo_ele_conf`;
CREATE TABLE `soraldo_ele_conf` (
  `id_conf` int(11) NOT NULL auto_increment,
  `descrizione` varchar(50) NOT NULL,
  `limite` int(2) NOT NULL,
  `consin` enum('0','1') NOT NULL default '1',
  `infpremio` int(3) NOT NULL,
  `supsbarramento` int(3) NOT NULL,
  `suppremio` int(3) NOT NULL,
  `listinfsbar` int(3) NOT NULL default '1',
  `listinfconta` enum('0','1') NOT NULL default '1',
  `listsupconta` enum('0','1') NOT NULL default '1',
  `supminpremio` int(3) NOT NULL,
  `infminpremio` int(3) NOT NULL,
  PRIMARY KEY  (`id_conf`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `soraldo_ele_conf`
--
/*!40000 ALTER TABLE `soraldo_ele_conf` DISABLE KEYS */;
LOCK TABLES `soraldo_ele_conf` WRITE;
INSERT INTO `soraldo_ele_conf` VALUES (1,'Legge Italiana 267/2000',3,'1',67,3,60,3,'1','1',40,40),(2,'Regione Sicilia precedente al 2008',2,'0',67,3,60,3,'1','1',40,40),(3,'Regione Sicilia Legge n. 22 del 16/12/2008',2,'0',67,5,60,3,'1','0',40,40);
UNLOCK TABLES;
/*!40000 ALTER TABLE `soraldo_ele_conf` ENABLE KEYS */;
Vanno aggiunti dei campi alla tabella soraldo_ele_cons_comune:

Codice: Seleziona tutto

ALTER TABLE `soraldo_ele_cons_comune` ADD `id_conf` int(11) NOT NULL default '0';
ALTER TABLE `soraldo_ele_cons_comune` ADD `preferita` enum('0','1') NOT NULL default '0';
Bisogna creare la tabella soraldo_ele_documenti:

Codice: Seleziona tutto

CREATE TABLE `soraldo_ele_documenti` (
  `id_doc` int(11) NOT NULL auto_increment,
  `descrizione` varchar(50) NOT NULL,
  `nomedoc` varchar(25) NOT NULL,
  `filedoc` blob NOT NULL,
  PRIMARY KEY  (`id_doc`),
  KEY `descrizione` (`descrizione`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `soraldo_ele_documenti`
--
/*!40000 ALTER TABLE `soraldo_ele_documenti` DISABLE KEYS */;
LOCK TABLES `soraldo_ele_documenti` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE `soraldo_ele_documenti` ENABLE KEYS */;
Alcuni campi della tabella soraldo_ele_sede vanno modificati:

Codice: Seleziona tutto

ALTER TABLE `soraldo_ele_sede` MODIFY `indirizzo` varchar(60) default NULL;
ALTER TABLE `soraldo_ele_sede` MODIFY `mappa` mediumblob NOT NULL;
Bisogna creare la tabella soraldo_ele_temi:

Codice: Seleziona tutto

CREATE TABLE `soraldo_ele_temi` (
  `tema` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `soraldo_ele_temi`
--
/*!40000 ALTER TABLE `soraldo_ele_temi` DISABLE KEYS */;
LOCK TABLES `soraldo_ele_temi` WRITE;
INSERT INTO `soraldo_ele_temi` VALUES ('default'),('altro'),('blog'),('stylized'),('tour'),('yellowblu'),('facebook');
UNLOCK TABLES;
/*!40000 ALTER TABLE `soraldo_ele_temi` ENABLE KEYS */;
Vanno modificati alcuni campi della tabella soraldo_ele_tipo:

Codice: Seleziona tutto

ALTER TABLE `soraldo_ele_tipo` MODIFY `descrizione` varchar(30) default NULL;
ALTER TABLE `soraldo_ele_tipo` MODIFY `lingua` varchar(2) NOT NULL default '0';
Daniele

Inviato: mar feb 23, 2010 4:47 pm
da roby
La soluzione proposta da Tolaini per il charset ha superato tutti i test che abbiamo fatto, anche se a volte ci ha richiesto di entrare in modifica per reinserire il carattere accentato. Vedrò di trovare una soluzione anche per le versioni precedenti di php e mysql.
Per le modifiche al DB, grazie del lavoro che hai fatto. Avevo pensato anche di farne uno script completo, ma la situazione degli aggiornamenti non è affatto omogenea quindi credo che la cosa migliore sia di farli a mano verificandoli uno per uno.
Con l'utilizzo di svn per la gestione delle versioni dovremmo riuscire a dare un pò d'ordine allo sviluppo ed evitare, da oggi in poi, questi problemi.
Roberto

gestione charset

Inviato: mer feb 24, 2010 4:42 pm
da roby
Per chi ha dovuto commentare la riga:
mysql_set_charset('utf8', $dbi);
e se la sente di fare un test, potrebbe sostituirla con :
mysql_query("SET NAMES 'utf8'", $dbi);
che è disponibile già dalla versione mysql 3.2, e magari fare un report delle prove,
io l'ho testata con mysql 5.1.37 e php 5.2.10 su ubuntu e va perfettamente.
Roberto

Inviato: gio feb 25, 2010 10:19 am
da margottid
L'ho testato, modificando i seguenti file:
- admin/admin.php
- admin/index.php
- client/file.php
- client/modules.php

Ho dovuto aggiungere, nella mia configurazione di Apache, la direttiva:
"AddDefaultCharset utf-8"
in modo che le pagine escano già con la codifica corretta.

Direi che funziona: le lettere accentate vengono lette correttamente, e salvate correttamente nel DB.

Daniele

Inviato: gio feb 25, 2010 11:46 am
da roby
Hai provato anche con:
AddDefaultCharset off

qui sul sito lo abbiamo impostato così e va bene. Magari lo avevi solo in on e veniva caricato il charset iso-8859-1 di default.
Roberto

Inviato: gio feb 25, 2010 3:17 pm
da margottid
Nella configurazione globale di Apache avevo "AddDefaultCharset ISO-8859-1", e avevo aggiunto "uft-8" solo nella sezione VirtualHost dedicata a EleOnLine.

Facendo come hai detto tu (unica direttiva "AddDefaultCharset off" per tutto il server Apache) funziona, e quindi per ora tengo questa configurazione (così è anche più "pulita").

Grazie mille,
Daniele