recuperare i topic di una sezione

Started by marcoaureliocommodo, April 09, 2012, 05:07:04 PM

Previous topic - Next topic

marcoaureliocommodo

salve a tutti ho un  problema: per sbaglio ho cancellato una sezione senza accorgermi che dentro di essa c'erano delle discussioni. Come faccio a ripristinare sezione e topic che c'erano al suo interno? ps: non ho toccato il database e non ho cancellato nulla o fatto backup. Ho solo un vecchio backup con le discussioni di quella sezione e quella sezione ma il forum ha dei nuovi messaggi non presenti in quel vecchio file. La domanda è questa: come faccio a spostare la sezione cancellata dal vecchio backup al file del database attuale?

Grazie mille

emanuele

...sempre fare attenzione quando si cancella! ;)

Non è una procedura "garantita" e non son sicuro di quali "effetti collaterali" possa comportare, comunque quel che mi viene in mente di suggerirti è (linea di principio, i dettagli devi vederli tu in quanto sei il solo a conoscerli, eventuali domande ti conviene farle prima di iniziare):

  • creati un'installazione in locale di SMF (qualche istruzione qui)
  • importa il backup
  • esporta...e qui viene la prima parte complicata: quel che devi esportare è:

    • la riga che descrive la board in smf_boards
    • tutti i topic che appartengono a quella board in smf_topics
    • tutti i messaggi dei topic di b. da smf_messages
    • eventuali sondaggim scelte e risultati associati a topic in quella board da, rispettivamente, smf_polls, smf_poll_choices e smf_log_polls
    • (ma questi potresti anche ripristinarli manualmente in seguito)

      • tutti i permessi relativi alla board da smf_board_permissions
      • eventuali moderatori da smf_moderators
      • eventuali permessi board-specifici da smf_permissions
    • e non so che fine abbiano fatto eventuali allegati presenti
  • re-importa tutto nel database del forum
  • fare un po' di manutenzione (ripara errori, ripara boards, riconta statistiche, ecc.)
Note a margine, ti conviene:
1) fare gli export un po' per volta in file separati (così è più facile fare l'import)
2) quando re-importi ti conviene mettere in manutenzione (così hai tempo per re-imporstare eventuali permessi, ecc.)

Al momento è tutto quello che mi viene in mente, chiedi pure se hai domande. ;)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

ho una domanda: e se non mi ricordo i topic e i messaggi che c'erano dentro a quella sezione?

emanuele

Ovviamente se li ricorda il backup. ;) ...ed avrei dovuto scriverlo.

Nella tabella board c'è una una colonna id_board, da quella ricavi l'id della board che vuoi esportare.
Nella tabella topics c'è una colonna id_board, quindi usando l'id board che hai trovato prima puoi filtrare i topic che appartengono a quella board.
Quindi in messages c'è una colonna id_topic, da cui ricavi tutti i messaggi dei topic contenuti nella board.

Per quanto riguarda i sondaggi, invece, nella tabella topics trovi la colonna id_poll, i numeri in essa contenuti (solo quelli per i topic che ti interessa exportare), ti serviranno per identificare i sondaggi (smf_polls), le scelte (smf_poll_choices) e i risultati (smf_log_polls) che ti interessano.

Poi, la situazione è sostanzialmente la stessa anche per tutti i campi opzionali: avrai una colonna id_topic o id_board a seconda dei casi con cui poter estrarre solo i dati che ti interessano.

P.S.
Ho già scritto che prima di fare l'import ti conviene fare un backup? Ecco, l'ho fatto! :P


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

a proposito di import, io dal phpmyadmin esporto senza toccare le opzioni di default il database, ma nel reimportarlo  mi da un erroere anche se reimporto lo stesso database

emanuele



Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

QuoteErrore
query SQL:

-- -- Dump dei dati per la tabella `smf_admin_info_files` -- INSERT INTO `smf_admin_info_files` (`id_file`, `filename`, `path`, `parameters`, `data`, `filetype`) VALUES (1, 'current-version.js', '/smf/', 'version=%3$s', 'window.smfVersion = "SMF 2.0.2";', 'text/javascript'), (2, 'detailed-version.js', '/smf/', 'language=%1$s&version=%3$s', 'window.smfVersions = {\n   ''SMF'': ''SMF 2.0.2'',\n   ''SourcesAdmin.php'': ''2.0'',\n   ''SourcesBoardIndex.php'': ''2.0'',\n ''SourcesCalendar.php'': ''2.0'',\n   ''SourcesClass-Graphics.php'': ''2.0'',\n   ''SourcesClass-Package.php'': ''2.0'',\n   ''SourcesDbExtra-mysql.php'': ''2.0'',\n ''SourcesDbExtra-postgresql.php'': ''2.0'',\n   ''SourcesDbExtra-sqlite.php'': ''2.0'',\n   ''SourcesDbPackages-mysql.php'': ''2.0'',\n   ''SourcesDbPackages-postgresql.php'': ''2.0'',\n   ''SourcesDbPackages-sqlite.php'': ''2.0'',\n   ''SourcesDbSearch-mysql.php'': ''2.0'',\n   ''SourcesDbSearch-postgresql.php'': ''2.0'',\n ''SourcesDbSearch-sqlite.php'': ''2.0'',\n   ''SourcesDispl[...]

Messaggio di MySQL:

#1062 - Duplicate entry '1' for key 'PRIMARY'

emanuele

Perché stai importanto i dati in un database che già contiene quella tabella e dei dati in essa.

Ora, a che punto sei della mia spiegazione sopra?


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

beh, fin'ora ho provato solo a fare un import e un exort di db mysql...

emanuele



Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

si nel mio localhost

penso però il problema sia molto più grande, ho provato anche con altri database anche non di smf e di altri software ma non cambia nulla, mi da sempre errori vari

emanuele

Ogni volta che tenti un nuovo import devi pulire completamente il database (di solito puoi cancellare direttamente tutte le tabelle, tanto dovrebbe pensarci il backup a ricrearle).


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.


marcoaureliocommodo

mi sono sbagliato scusate il doppio post, non era un topic risolto sfortunatamente. Ho fatto tutti i passaggi e ho intanto provato a inserire solo i dati di una board, senza messaggi o altro, così per provare.

mi viene fuori un'errore
QuoteYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS `smf_board_permissions` (
  `id_group` smallint(5)  NO' at line 37

com'è possibile?

emanuele

Scusa se sono così rompino, ma se devo aiutarti devo capire esattamente quello che hai fatto...

Cosa vuol dire che hai provato ad inserire solo i dati di una board?
Posso immaginare tu ti riferisca al punto 3a della mia lista.
In tal caso devo chiederti come hai fatto ad esportare solo i dati di quella board (in effetti non l'ho scritto come fare perché onestamente non ero sicuro nemmeno io...ora scrivendo, però, mi sta venendo un idea: cancella tutto quello che non ti interessa e dopo esporta...in un modo un po' particolare, cioè salvando solo i dati senza la "struttura" (togli la spunta dal campo relativo quando fai l'export)...scusa la sinteticità, ma è un po' tardi ora...se vuoi i dettagli, domani).

A giudicare dall'errore hai fatto un export di tutto il database, ma non saprei interpretare l'errore, perché la sintassi mostrata sembra corretta... ???

* emanuele ha bisogno di sonno...


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

marcoaureliocommodo

ho un vecchi backup, ho preso i dati relativi a quella board e gli ho copiati e incollati nel db appena esportato

emanuele

E come hai fatto a prenderli?
Chiedo perché quel "create table" a sto punto non dovrebbe esserci...beh, non è vero... ???
Comunque se esporti solo i dati e non la struttura quello non ci deve essere.

Senti, prova così:
  • importa il backup in un database vuoto
  • entra nelle tabelle che ti ho detto sopra ed esegui l'export impostando i parametri in questo modo: * Structure (o struttura) togli la spunta; dove c'è "data" metti la spunta a "Use ignore inserts";
  • ora vai nel database di SMF (quello in locale) e importa quegli export che hai fatto sopra.
    Forse funziona...

    Una volta che hai creato in locale una copia del tuo forum, puoi provare cancellando tutte le tabelle ed importanto il backup (usa anche repair_settings.php dopo l'import per correggere i percorsi).

    A questo punto dovresti poter navigare tranquillamente il tuo forum in locale con il database del backup e cancellare quello che non ti dovrebbe servire ed esportare solo quello che ti serve...


    * emanuele si domanda se ci sia un modo più semplice...


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Advertisement: