Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Sinceramente non sapevo dove postare, quindi posto qui..
Ho un database mysql esportato da phpmyadmin in NomeDB.sql
Aprendolo ho visto che ci sono tutte le istruzioni per la "costruzione" del database: "Create table.." "Insert .."
Volevo convertirlo in un db sqlite3 ma non ci sono riuscito. Cercando su internet ho visto che non è semplice, ed ho trovato uno shell script per la conversione.
Lo shell script non l'ho provato perchè mi manca il software per eseguirlo e sinceramente non mi va di stare a scaricare un programma per eseguire lo script che mi dovrebbe fare la conversione.. non è possibile che esista solo quello script, qualche altro programma dovrà pur esistere.
Mi sono venuti un pò di nervi perchè è da 2 ore che sto provando varie maniere per convertirlo, ma possibile che non esista un software che lo converte realmente?
Cosa hai esportato ? i dati o la struttura oppure entrambi ??
Devi esportare la struttura (DDL) del DBMySQL e ricrearla in SQLite, poi esportare i dati, meglio se 1 tabella alla volta, e reimportarli.
Io per amministrare i DB SQLite uso: http://www.sqlite.org/ è free ed abbastanza "frendly"
Per MySQL uso: http://www.sqlmanager.net/en/products/studio/mysql
Ultima modifica effettuata da Goblin il 14/04/2012 alle 23:21
bè non ne sono sicuro ma mi pare entrambi, aprendo il file sql si vedono tutte le varie "istruzioni" che creano le tabelle e che inseriscono i dati nei vari campi..
Il mio non è un problema di amministrazione, ma al momento mi serve solo di convertire questo db mysql in sqlite
Dividi la parte di creazione delle strutture da quella dell'import dei dati.
Ricrei le strutture in Sqlite e le confronti con le originali, poi 1 tabella alla volta butti dentro i dati
allora vediamo se ho ben capito.. quello che mi suggerisci di fare è praticamente di creare un nuovo database con la stessa struttura del mio db mysql ed una volta fatto ciò inserire nelle tabelle i dati?
Fare un database sqlite con le varie tabelle non dovrebbe essere un problema..
ma i dati come dici di metterli? spero non a mano... perchè ho molti dati e quindi mi servirebbe qualche programma che prende i dati dal db mysql e li mette nel db sqlite, hai qualche idea di come posso fare?
Yes in linea di massima l'idea è quella, ma niente lavoro "amanuense".
Mi ripeto
1) esporta le strutture del DB MySql (ddl)
2) ricrea (esegui lo script esportato dal MySQL con le dovute modifiche) le strutture in SQLite
3) esporta i dati delle singole tabelle
4) reimporta i dati
Credo che qualsiasi tool di amministrazione abbia una voce per esportare strutture (DDL) e dati, e ovviamente anche il processo inverso, ossia di leggere un file sql ed eseguirlo.
Il punto 4 potrebbe essere "rognoso" nel caso hai campi "memo" o "binari" non ricordo come SQLite gestisce tali campi.
dunque per farti un piccolo esempio, io ho il mio DB (fanta.fdb) in Firebird, estraggo le strutture:
Codice sorgente - presumibilmente Delphi
SET SQL DIALECT 3;
SET NAMES UNICODE_FSS;
SET CLIENTLIB 'FBCLIENT.dll';
CREATE DATABASE '127.0.0.1:C:\TEMP\FANTA.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET UNICODE_FSS;
CREATE GENERATOR GEN_GIOCATORI_ID;
SET GENERATOR GEN_GIOCATORI_ID TO1;
SET TERM ^;
CREATE PROCEDURE SP_GEN_GIOCATORI_ID
RETURNS (ID INTEGER)
AS
BEGIN
SUSPEND;
END^
SET TERM ;^
CREATE TABLE ALLENATORI (
ID INTEGERNOT NULL,
NOME VARCHAR(15)
);
CREATE TABLE GIOCATORI (
ID INTEGERNOT NULL,
NOME VARCHAR(20),
SQUADRA VARCHAR(20),
RUOLO VARCHAR(20)
);
SET TERM ^;
/* Trigger: GIOCATORI_BI */
CREATE TRIGGER GIOCATORI_BI FOR GIOCATORI
ACTIVE BEFORE INSERT POSITION 0
as
begin
if(new.idis null)then
new.id= gen_id(gen_giocatori_id,1);
end^
SET TERM ;^
SET TERM ^;
ALTER PROCEDURE SP_GEN_GIOCATORI_ID
RETURNS (
ID INTEGER)
AS
begin
id = gen_id(gen_giocatori_id, 1);
suspend;
end^
SET TERM ;^
E salvo il tutto in un file che chiamo FantaStru.sql
poi estraggo i dati dalle tebelle
Codice sorgente - presumibilmente Plain Text
INSERT INTO ALLENATORI (ID, NOME)
VALUES (1, 'aaaaa');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (2, 'bbbbb');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (3, 'cccccc');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (4, 'ddddd');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (5, 'eeeee');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (6, 'fffffff');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (7, 'ggggg');
INSERT INTO ALLENATORI (ID, NOME)
VALUES (8, 'hhhhh');
COMMIT WORK;
e come per le strutture lo salvo in un file Allenatori.sql, e così via per ogni tabella.
Apro "SQLite Expert" e carico FantaStru.sql, lo eseguo correggo eventuali errori di sintassi e la struttura è creata, poi faccio lo stesso con il file Allenatori.sql lo eseguo e così via... alla fine avrai il tuo DB su SQLite. spero di essere stato chiaro.
G