Sto usando una versione 4.7.4 in una nuova installazione (quindi niente upgrade) e sto notando problemi che in versioni precedenti (tipo la 4.7) non mi sembrava di avere (anzi, ne sono abbastanza sicuro).
Quando installo un modulo (in questo caso flexinode, ma è successo anche con phpfreechat e, a questo punto, inizio a pensare che succederà ancora) me lo installa tranquillamente, cioé, quando attivo il modulo, le tabelle vengono create e tutto sembra funzionare.
Il problema sorge quando vado a disinstallare il modulo. Mi spiego:
Disattivando il modulo, suppongo, le tabelle del modullo disinstallato dovrebbero essere cancellate dal database, no? Invece me le lascia nel database come se il modulo fosse ancora installato. Se cancello le tabelle a mano dal database e poi provo a reinstallare il modulo (in questo caso sto parlando sempre di flexinode), mi appare un messaggio di errore che mi avverte che le tabelle di flexinode non sono presenti all'interno del database e quindi il modulo non viene attivato.
Perché quando disattivo il modulo Drupal non cancella le tabelle inerenti al modulo disattivato? Ma, soprattutto, perché se le cancello a mano quando vado a riattivare il modulo, invece di ricrearmi le tabelle, non lo riattiva e si rende conto che il modulo era già stato installato precedentemente? Oltre alle tabelle del modulo, in quale altre tabelle del database vengono inserite informazioni inerenti all'installazione dei moduli?
O c'è qualcosa che non va nella mia installazione... oppure mi sfugge qualcosa.
Penso, però, che debba avere qualche malfunzionamento nella mia installazione di Drupal perché non può essere che funzioni in questo modo.
In questo caso, per esempio, ho notato che flexinode 4.7.x installato su Drupal 4.7.4 aveva dei problemi. Così sono andato a vedere su drupal.org se c'era qualche versione più recente e ho trovato flexinode 4.7.x-1 (che sembra, almeno a prima vista, risolvere i problemi). Ora, essendo un sito di prova dove sto semplicemente smanettando non mi è costato nulla cancellare il database e ricrearlo ex-novo per installare il nuovo flexinode, ma se invece fosse stato un sito in stato avanzato... come avrei fatto? Insomma, per farla breve, vorrei sapere se ho qualcosa che non mi funziona o se c'è qualcosa che mi sfugge. In più, se qualcuno può aiutarmi, vorrei sapere in quale altre tabelle vengono scritti dei record ogni volta che si installa un modulo.
Vi ringrazio molto per l'attenzione. :)
4.7 l'installazione delle tabelle dei vari moduli, quando richiesto, avviene in maniera manuale.. così come la loro eliminazione una volta che il modulo non viene utilizzato più.
Nella versione 5.0, ancora in beta, si sta cercando di ovviare alla creazione delle tabelle in fase di attivazione del modulo tramite gli script di installazione, per quanto riguarda la disistallazione non saprei dirti se la cosa verrà automatizzata, dato che una svista di caricamento/scaricamento moduli potrebbe arrecarti dei danni nel caso venissero cancellate erronaemente delle tabelle..
Ogni qualvolta si aggiornano i moduli per una certa versione di drupal non serve ricreare il database da capo, basta solo sostituire i corrispondenti file tramite sessione ftp all'interno della cartella che li contiene ovviamente se le tabelle non sono state cancellate prima, altrimenti devi ricrearle per quanto detto sopra.
Solitamente una volta creati i moduli vengono aggiornati per problemi relativi alla sicurezza, quando si vogliono inserire nuove funzioni che vanno a modificare la struttura della tabella di solito la si tiene in CVS per molto tempo, quindi coloro che andassero a scaricarla da li dovrebbero fare attenzione al file README che contiene le info necessarie per l'upgrade.
Per quanto riguarda l'ultima osservazione che hai fatto basta guardare il sorgente dei moduli e vedere i nomi delle tabelle che utilizzano, ci sono poi tabelle standard come Variables, se non ricordo male, che vengono gestite dagli script interni per memorizzare le impostazioni... con un po' di pazienza e studiando il codice non è complicato risalire a tutto ciò che serve.
mi spiace dissentire TheCrow, ma la 4.7 ha già implementata l'installazione manuale delle tabelle dei moduli, è sufficiente che ci sia un [nome-modulo].install
Il problema è che se non usi più il modulo, non è che ti debba cancellare le tabelle create. Anzi sarebbe una pessima scelta, in quanto se per caso volessi disabilitare (non disintallare) un modulo perchè in quel momento non mi serve (es. trackback), perderei tutte le info. Se vuoi cancellaro, vai sul DB e cancella le relative tabelle, e vai a trovare in system il record che ti interessa e rimuovilo. Così hai completamente disinstallato il modulo. (ps. potrebbe esserci qualche info in variables, sequences, controlla)
--
Drupal e Siti Web Torino
Blog: Computer Graphics
Vi ringrazio molto per le risposte. :)
In effetti, sicuramente, nelle passate versioni non mi sono preoccupato di andare a vedere se una volta disattivato un modulo le tabelle venivano cancellate o meno. Da quel che mi dite, se non altro, apprendo che non sono io ad avere problemi ma che è il sistema a funzionare in questo modo. Questo, se non altro, mi chiarisce il funzionamento e mi leva parecchi dubbi.
Confermo a Psicomante che i moduli quando vengono installati la prima volta aggiungono le tabelle automaticamente, senza che ci sia bisogno di aggiungerle manualmente. Il mio problema è che vengo da sistemi più automatizzati (che hanno la possibilità di disattivare i moduli, lasciando le tabelle, e successivamente di disinstallarli completamente) e quindi mi sembrava strano che bisognasse farlo a mano. Tutto qua. Il fatto che chiedessi in quale altre tabelle potessero finire i record delle installazioni dei moduli era proprio dovuto al fatto che in caso bisognasse farlo a mano, non avrei avuto nessun problema a farlo. Volevo solo essere sicuro che non fosse un problema solo mio.
In questo caso devo dare ragione a TheCrow che, giustamente, mi ha consigliato di controllare sui files .install (stupido io a non pensarci).
Per quanto riguarda il perché voglia cancellare ogni volta le tabelle è perché sto cercando di tenere il database il più pulito possibile. Insomma, considerando che sto provando decine e decine di moduli non posso lasciare tutta quella roba sul database. Però, proprio perché sto facendo delle prove, a volte mi capita di reinstallare qualcosa che avevo disinstallato (cancellando le tabelle a mano) in precedenza e avevo bisogno di capire come funzionava il tutto.
Questo sistema (drupal) mi piace molto (leggero e veloce), ma essendo molto diverso da quello che ho usato fino ad ora mi ci vorrà un po' per abituarmi ala sua logica.
Vi ringrazio molto per le delucidazioni.:)