Aggiornare alla 6.16 -> warning query?

14 contenuti / 0 new
Ultimo contenuto
Aggiornare alla 6.16 -> warning query?

Ho fatto vome ho sempre fatto... metto in "manutenzione", backuppo Db e Dir, e sovrascrivo i file con quelli della nuova versione. Vado su www.miosito.com/update.php MA STAVOLTA ottengo una cosa del genere:

user warning: Table 'drp.semaphore' doesn't exist query: SELECT expire, value FROM semaphore WHERE name = 'locale_cache_it' in /usr/home/miadir/includes/lock.inc on line 154.

Ho anche provato ad andare avanti cliccando su Continua... Poi mi compare il link per tornare al pannello di amministrazione ma si blocca con questo errore

Fatal error: Call to undefined function: array_intersect_key() in /usr/home/miadir/modules/update/update.compare.inc on line 695

Che fare? Nel frattempo ho ripristinato la vecchia versione ma non mi pare la soluzione giusta, visto che c'è di mezzo anche la sicurezza...

xfire78xx (non verificato)
Ritratto di Anonimo

Problemi analoghi li trovi qui e qui (ancora non risolto). Per il secondo problema non saprei..

Come già detto altrove semaphore è una nuova tabella di D6.16, viene creato dal codice modules/system/system.install: 2650:

/**
* Add semaphore table.
*/
function system_update_6054() {
...
}

Il secondo problema è dovuto ad una versione di PHP troppo vecchio - la funzione array_intersect_key() esiste solo dalla versione 5.1.0 in poi: http://php.net/manual/en/function.array-intersect-key.php

Più imparo, più dubito.

xfire78xx (non verificato)
Ritratto di Anonimo

A me quel lock.inc negli errori viene sempre segnalato la riga 154 e 229. Il messaggio è sempre quello. Non dice altro..

EDIT:
I log li ho visti qui: admin/reports/dblog

Più imparo, più dubito.

jhl.verona wrote:
Come già detto altrove semaphore è una nuova tabella di D6.16, viene creato dal codice modules/system/system.install: 2650:

Nelle prove che ho fatto le tabelle del db sono passate da 83 a 84. Immagino fosse la creazione della tabella che dici tu. Mi spaventava il fatto di essere segnalata come Warning.
Adesso andrò a riprovare... Cosa devo aspettarmi? Una tabella nuova vuota o ci mette qualche dato? ...così... per rendermi conto... boh...
Sono un po' turbato/demoralizzato perchè in tutti gli aggiornamenti fatti in precedenza non MAI avuto un problema!!

jhl.verona wrote:

Il secondo problema è dovuto ad una versione di PHP troppo vecchio - la funzione array_intersect_key() esiste solo dalla versione 5.1.0 in poi: http://php.net/manual/en/function.array-intersect-key.php[/quote]

Io sono su un sistema Apache/1.3.31 (Unix) PHP/4.4.2
Che devo fare? Non aggiorno Drupal?? Mi resta un "drupal insicuro" se non faccio gli aggiornamenti **di sicurezza**?

Qualche consiglio? (al momento mi è impossibile cambiare/aggiornare piattaforma)
Retrovompatibilità di quella roba?

Lavori in un museo? Credo che Apache 1.3.31 e PHP 4.4.2 ti dà molto più preoccupazioni che Drupal. Mi sa che finchè non aggiorni Apache e PHP devi restare con D6.15 (e senza tanti moduli)...

Più imparo, più dubito.

jhl.verona wrote:
Lavori in un museo? Credo che Apache 1.3.31 e PHP 4.4.2 ti dà molto più preoccupazioni che Drupal. Mi sa che finchè non aggiorni Apache e PHP devi restare con D6.15 (e senza tanti moduli)...

Si... lavoro in un museo :D
Non sono capace di smanettare su linux... quindi uso l'ultima versione che venne installata su questo server.
Infatti mi serviva ubercart e non lo posso installare finchè non "migro via".

Fino a quel giorno che mi conviene fare?

Ho la versione 6.14 ... la .15 cambia qualcosa? Se così non fosse non sto a perdere altro tempo...

Meglio restare con 6.14 - e trovare un amico che sapia qualcosa di Linux. Ci sarà pura un Linux User Group vicino a te: http://www.linux.it/LUG/

Più imparo, più dubito.

Quote:
Lavori in un museo?

Che humour, che uomo!
:P

Perferisco quello fatto da un altro su 'solo due righe': http://www.drupalitalia.org/node/8818#comment-27239. Bella la battuta...

Più imparo, più dubito.

Io ho risolto creando a mano la tabella sul db:

CREATE TABLE [database].[prefix]semaphore (
`expire` INT NULL ,
`value` INT NULL ,
`name` TEXT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

e navigando un pò nel sito non mi esce più il warning e vengono correttamente fatte delle insert.

Magari poi ci sarà bisogno di aggiungere altri campi, ma al momento questi sono quelli che mi venivano segnalati nel warning.

Ciao chupachups.

Mi sembra un pò troppo hackish come soluzione...

Comunque l'SQL che usa mysqldump (o backup and migrate) è:

CREATE TABLE [database].[prefix]semaphore (
   `name` varchar(255) NOT NULL DEFAULT '',
   `value` varchar(255) NOT NULL DEFAULT '',
   `expire` double NOT NULL,
   PRIMARY KEY (`name`),
   KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Nota che i tipi delle colonne sono ben diverse, oltre al PK, ecc...

John

Più imparo, più dubito.

Grazie John,
la mia era una soluzione temporanea per non avere il warning nel sito.
Allora ricreo la tabella così come hai postato tu.