programmazione:sqlite:da_mysql_a_sqlite
−Indice
Conversione db da Mysql a Sqlite
Autore: Fabio Di Matteo
Ultima revisione: 19/05/2011
Quando si deve convertire un intero db in un altro ,come da mysql a sqlite, si deve tenere conto del formato delle query con la relativa sintassi che non sempre è “standard”.
Di seguito elenchero' alcuni accorgimenti che ho preso per la conversione totale e con successo di alcuni miei db .
Gli strumenti che servono
Prima di cominciare la conversione assicurarsi di avere i seguenti strumenti.
- interprete sqlite;
- convertitore da mysql a sqlite (script o altro, ce ne sono diversi in rete)
Accorgimenti necessari
Una volta ottenuto il db sqlite lo si deve controllare. Procediamo.
sqlite miodb.sqlite
.schema
Fatto cio' ci dobbiamo assicurare sulle seguenti cose.
- La chiave primaria deve essere di tipo INTEGER e non
INT
e non deve avere dimensione. Altrimenti non funziona l'AUTOINCREMENT. - Nelle query si deve fare attenzione a non inserire gli apostrofi ` tollerati in mysql. Meglio usare il classico apice singolo.
- Prestare attenzione ai campi convertiti in automatico come NOT NULL e in caso non serva rimuovere l'impostazione.
- Usare la funzione sqlite_escape_string() quando si inserisce del testo nel db invece che
addslashes()
. Oppure se si usa PDO il metodo PDOStatement::bindParam
Qualche esempio di tabella
CREATE TABLE "itcms_pages" ( "id" INTEGER NOT NULL , "home" varchar(1) , "title" varchar(256) , "body" text , "menu" varchar(1) , "menuorder" int(3) , PRIMARY KEY ("id") );
Accorgimenti con PHP e il driver PDO
Stare attenti alla stringa DSN che cambia in base alle versioni di sqlite:
per sqlite 1
$DSN = 'sqlite:/web/htdocs/home/fabiodm/lib/db.sqlite' ;
per sqlite 2
$DSN = 'sqlite2:/web/htdocs/home/fabiodm/lib/db.sqlite' ;
per sqlite 3
$DSN = 'sqlite3:/web/htdocs/home/fabiodm/lib/db.sqlite' ;
programmazione/sqlite/da_mysql_a_sqlite.txt · Ultima modifica: 08/05/2025 10:02 da 127.0.0.1