Passaggio dalla Versione 1.1.1.a al 2.0

Annunci e file degli update

Moderatore: roby

Rispondi
bline
Newbie
Newbie
Messaggi: 30
Iscritto il: mer dic 17, 2008 12:00 am

Passaggio dalla Versione 1.1.1.a al 2.0

Messaggio da bline »

Salve,
quale è la procedura per passare al 2.0 senza perdere i dati del 1.1.1.1a?
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Messaggio 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
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Messaggio 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
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Messaggio 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.
Ultima modifica di roby il mer feb 24, 2010 4:21 pm, modificato 1 volta in totale.
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

dalla 1.1.1a alla 2.0

Messaggio 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
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Da verificare

Messaggio 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 */;
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Messaggio 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
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

tabella config

Messaggio 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
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Messaggio 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
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Messaggio 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
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

gestione charset

Messaggio 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
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Messaggio 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
roby
Site Admin
Site Admin
Messaggi: 1260
Iscritto il: ven apr 25, 2008 12:00 am
Contatta:

Messaggio 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
margottid
Newbie
Newbie
Messaggi: 193
Iscritto il: mar mag 12, 2009 12:00 am

Messaggio 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
Rispondi