News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

convertire database mysql in sqlite

Started by marcoaureliocommodo, February 01, 2012, 11:13:45 AM

Previous topic - Next topic

marcoaureliocommodo

salve, avrei una domanda, è possibile dopo aver creato un forum con database mysql, convertirlo con database sqlite?
se non mi sbaglio con phpmyadmin è possibile ottenere una copia del database in linguaggio sqlite, giusto?

grazie mille

emanuele

#1
Lo puoi esportare in SQL, quindi *presumo* (non l'ho mai fatto) sia poi possibile re-importarlo usando l'equivalente di phpmyadmin per SQlite...che si chiama...non mi ricordo più, c'è un topic nella board inglese, vado a cercarlo.

Edit: eccolo http://www.simplemachines.org/community/index.php?topic=451333.msg3155878#msg3155878
e questo è lo script http://www.sqlitemanager.org/

L'ho usato solo quella volta, quindi non ricordo esattamente come funziona...


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

#2
ah ok quindi per convertire un database mysql in sqlite devo andare in phpmyadmin, premere su esport, sql, e copiare il codice che  mi danno, poi creare un nuovo file con estensione .db e incollare quello script copiato prima. Poi andare in setting.php e cambiare la riga $db_name e così avrò il forum con sqlite invece che con mysql, giusto?
il secondo link a che serve...scusate la mia ignoranza...

ps: in setting.php, ho trovato solo una riga di codice che dice $db_name = 'my_prova';

emanuele

No...

Allora: vai in phpmyadmin, esporti in un file sql (esporta solo le tabelle, non l'intero database, guarda la guida che ti ho linkato prima, mi pare di averlo spiegato là...credo).
Carichi SMF e fai l'installazione usando SQlite come database.
Prendi lo script che trovi qui lo decomprimi e lo carichi sul tuo spazio.
Lanci dal browser sqlite manager e gli indichi di usare come database il file di database che hai creato durante l'installazione di SMF.
Da sqlite manager importi il file che hai esportato da phpmyadmin.

In linea di principio questa è la procedura, non l'ho mai testata...


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

andando in php my amdin e facendo esport ami viene solo un lungo script in php...
ho messo in allegato una foto


ps: devo scaricare qualcosa da questo sito? sqlitemanager.org?

grazie mille

emanuele

Quote from: marcoaureliocommodo on February 02, 2012, 08:42:57 AM
andando in php my amdin e facendo esport ami viene solo un lungo script in php...
ho messo in allegato una foto
In allegato hai messo la pagina di export e va bene.
C'è selezionato SQL e va bene (non è php quello che ottieni, ma SQL).
Se vuoi seleziona "compresso con zip" o "compresso con gzip" e premi "vai" (o equivalente).

Quote from: marcoaureliocommodo on February 02, 2012, 08:42:57 AM
ps: devo scaricare qualcosa da questo sito? sqlitemanager.org?

Quote from: emanuele on February 01, 2012, 05:55:52 PM
Prendi lo script che trovi qui lo decomprimi e lo carichi sul tuo spazio.

In altre parole, sì questo: http://sourceforge.net/projects/sqlitemanager/files/sqlitemanager/1.2.4/


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

QuoteLanci dal browser sqlite manager e gli indichi di usare come database il file di database che hai creato durante l'installazione di SMF

non vedo dove si importa il file che ho scricato da phpmyadmin...

scusate, ma la faccenda è molto complicata per me, io non sono un grande esperto...

ps: il mio obbiettivo sarebbe quello di trasferire un forum con db mysql e trasferirlo identico sia come file sia come contenuto del database cambiando però quest'ultimo in sqlite, ed è per questo che ho aperto questa discussione

emanuele

Quote from: marcoaureliocommodo on February 02, 2012, 09:26:10 AM
scusate, ma la faccenda è molto complicata per me, io non sono un grande esperto...
Beh, nemmeno io, provo fino a quando le cose non funzionano...
Un esperto è solo uno che ha provato molte cose.

Devo trovare devo ho l'installazione con sqlite. Abbi pazienza.

Quote from: marcoaureliocommodo on February 02, 2012, 09:26:10 AM
ps: il mio obbiettivo sarebbe quello di trasferire un forum con db mysql e trasferirlo identico sia come file sia come contenuto del database cambiando però quest'ultimo in sqlite, ed è per questo che ho aperto questa discussione
...beh, è il titolo della discussione ed è quello che sto cercando di farti fare... ;)


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.

emanuele

Premessa: parto dal presupposto che tu abbia fatto già la procedura d'installazione di SMF usando SQlite e che hai già caricato e accedi correttamente a sqlite manager.

Altra premessa: fai due export del tuo precedente database. Uno come l'hai già fatto, il secondo spunta l'opzione "aggiungi DROP TABLE/VIEW/PROCEDRE/ecc." e ripeti l'export.

Ultima premessa: non ho mai detto che migrare a sqlite sarebbe stato facile. Non difficilissimo forse, ma di sicuro non ho mai detto "facile".

Allora:
1) nella prima pagina appena sqlite manager, ti chiede un file, corretto? C'è "name", "version", "path".
2) In name puoi mettergli sostanzialmente quello che vuoi.
3) In version...devo dire: boh. Lascia 2.
4) In path, metti la stessa path che hai messo durante l'installazione di SMF (sarà qualcosa tipo /var/www/tuosito/smf) ed in più gli aggiungi "/nome_del_database.db" dove "nome_del_database" è il nome che hai impostato al database durante l'installazione di SMF (ma forse questo lo fa in automatico, quindi accederai via ftp, e, nella directory di SMF cercherai un file con estensione ".db" ed userai il nome di quel file).
5) A questo punto premi "save" e verrai portato all'interno del database, dove vedrai le tabelle di smf.

Nota: non son sicuro tu possa importare tutto pari pari senza cancellare qualcosa, quindi come precauzione, intanto che stai guardando il nome del file (al punto 4), scaricatelo sul tu computer così ne hai una copia...male non fa, al massimo poi la cancelli.

A questo punto, se hai scaricato l'export del tuo database come zip, decomprimilo.
Sempre in sqlite manager vai in SQL (menù in alto) e dove c'è "choose file" vai a cercare il tuo file sql (quello del secondo export, con "drop table/ecc").
Qui ci può essere un inghippo: sel il file è troppo grosso il server potrebbe non accettarlo. In tal caso ti toccherà spezzettarlo. Puoi farlo a mano, oppure puoi usare questo programmino: http://www.sqldumpsplitter.com/
Una volta spezzettato dovrai ripetere la procedura di caricamento per tutti i file risultanti.

Finito questo potrai caricare tutti i file del tuo vecchio forum sopra a quelli della nuova installazione ad eccezione di Settings.php!
Ed il "gioco" dovrebbe essere fatto.


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

#9
quando premo salva non va...

mettiamo che io ho chiamato il mio export del database a.sql e voglio chiamare il database del nuovo forum "b" come devo fare?
nella path che devo inserire?quale nome del database?a.sql o b? (sto hostando un mio forum di prova su xampp)

ho provato in seguito a caricare il file .sql e sulla casella path mi veniva una directory C:/fakepath\my_forumprova.sql, poi ho provato a salvare ma mi dice che nel file che ho caricato non c'è niente (ho caricato in path il database esportato la prima volta, quello senza droit ecc...)

emanuele

Quote from: emanuele on February 01, 2012, 05:55:52 PM
Carichi SMF e fai l'installazione usando SQlite come database.

Detto in altre parole devi caricare un altro pacchetto d'installazione di SMF in una directory diversa da quella in cui ce l'hai già, e devi ripetere la prcedura d'installazione di SMF indicando che vuoi usare SQlite invece di MySQL (durante l'installazione!) allora SMF ti creerà un file smf_few3423uj.db (ovviamente il nome NON sarà questo ma un altro univoco e casuale) che sarà quello che poi dovrai indicare a sqlite mqnqger.


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 da lo stesso errore. Il mio database sqlite del forum "nuovo" (quello con il database sbagliato) si chiama smf_8a89bf4630.db

io ho inserito su name "dbforum" su version 2 e su path /var/www/my_community/smf/smf_8a89bf4630.db   dato che ho lasciato come nome del forum, quello di default

emanuele

Ma non hai detto che stai usando WAMP?
Allora la path non può essere /var/qualcosa.
La path è il percorso fisico in cui si trova il tuo file, quello che tu usi per accedere al file da esplora risorse, quindi non so C:\wamp\smf\smf_faffe3e.db


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 da un errore già alla prima linea

quando premo execute per caricare il secondo export (quello del droit ecc...)

Error line(s) : 1
Error :   SQL logic error or missing database
    near "SET": syntax error
Query :
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

emanuele

Apri il file con un editor di testo (non word, notepad++ o similari ti sconsiglio il notepad di windows perché ci impiegherebbe una vita), e cancella quella riga.

O meglio edtto quel pezzo di testo:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

E' possibile che poi ci sia anche altro da cancellare...


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 cancellato quella riga e mi da questo errore Error line(s) : 1
Error :   SQL logic error or missing database
    unrecognized token: "`"

emanuele

Attenzione perché magari durante l'export ogni riga conteneva più di un'istruzione e magari istruzioni spezzettate su più righe, ad esempio:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; DROP `smf_attachments`; CREATE TABLE
`smf_attachments`;

ecc.

Fati attenzione ad aver cancellato solo la stringa
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
e nient'altro.

Casomai posta le prime due o tre righe (non dovrebbero esserci dati sensibili tipo indirizzi email o nomi).

Ah, se posti qualcosa assicurati di metterlo all'interno dei tag [code][/code], così che mantenga la formattazione e non venga alterato da SMF. ;)


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 cancellato solo la riga che c'è scritta sopra ...
questo è il database dopo la cancellazione della riga


-- phpMyAdmin SQL Dump
-- version 2.11.11.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 02 Feb, 2012 at 10:05 PM
-- Versione MySQL: 5.1.58
-- Versione PHP: 5.2.17



/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `my_forumprova`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `smf_admin_info_files`
--

DROP TABLE IF EXISTS `smf_admin_info_files`;
CREATE TABLE IF NOT EXISTS `smf_admin_info_files` (
  `id_file` tinyint(4) unsigned NOT NULL AUTO_INCREMENT,
  `filename` varchar(255) NOT NULL DEFAULT '',
  `path` varchar(255) NOT NULL DEFAULT '',
  `parameters` varchar(255) NOT NULL DEFAULT '',
  `data` text NOT NULL,
  `filetype` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id_file`),
  KEY `filename` (`filename`(30))
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;


emanuele

Ok, non avevo considerato le differenza nella struttuda del SQL...
Nota a me stesso: aggiungi tra le cose da fare di scrivere un convertitore.

Guardando la pagina dedicata ai convertitori sul sito di SQlite, l'unico che parrebbe fare al caso tuo è il primo (ce n'è una versione di prova gratuita per 30 giorni).

C'è anche un'altra possibilità che ho parzialmente provato.
Direi che ti permette di preservare la maggior parte dei dati (di fatto "perderesti" (di un'installazione di default, non posso sapere se ci son di mezzo dati di configurazione di mod) solo i set di smiley, quindi i nomi dei pacchi che comunque si possono anche inserire manualmente in un secondo tempo, alla fine si tratta di una riga), ma dovrebbe comunque consentirti di fare la migrazione...ora è troppo tardi per fare tutti i passaggi, lascio lo screenshot della configurazione dell'export di phpmyadmin così mi ricordo. Il resto domani (se per caso non posto entro domani sera, posta tu un reminder... :))


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.

emanuele

Maledizione, importa correttamente i dati, ma ho un problema con i login, non vorrei sia perché ho importato un db della versione finale in un database della RC5 (...l'ultima volta che ho testato SQlite), devo rifare la prova... :(


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: