Sembrava quasi impossibile invece ci sono riuscito, e non è stato neanche difficile, stiamo parlando della migrazione dei dati da un database Microsoft Access (.mdb) a mySql (.sql) (migrazione necessaria se si vuole convertire un sito asp o asp.net in PHP).
Soluzione per Linux
Il software che ho provato gira su ubuntu e si chiama MDB-Tools.
Potete installarlo in pochi instanti sulla vostra distro ubuntu tramite il comando
sudo apt-get install mdbtools
Una volta installato potete, a linea di comando, estrarre sia lo schema del DB che le varie tabelle.
Visualizziamo la lista delle tabelle del DB:
mdb-tables NOMEDB.mdb
output:
table1 table2
Possiamo anche visualizzare la struttura di tutte le tabelle:
mdb-schema NOMEDB.mdb
output:
————————————————————-
— MDB Tools – A library for reading MS Access database files
— Copyright (C) 2000-2004 Brian Bruns
— Files in libmdb are licensed under LGPL and the utilities under
— the GPL, see COPYING.LIB and COPYING files respectively.
— Check out http://mdbtools.sourceforge.net
————————————————————-DROP TABLE table1;
CREATE TABLE table1
(
ID Long Integer,
nick Text (100),
anno Integer,
data Integer,
);
— CREATE ANY INDEXES …DROP TABLE table2;
CREATE TABLE table2
(
ID Long Integer,
settore Long Integer,
descrizione Text (120),
scheda Long Integer,
progetto Text (20),
);
— CREATE ANY INDEXES …
Una volta reperita la lista delle tabelle possiamo estrarre tutti i dati di ogni singola tabella
mdb-export -I NOMEDB.mdb table1 | sed -e ‘s/)$/)\;/’
output:
INSERT INTO table1 (ID, nick, anno, data) VALUES (1,”pippo”,1987,20110207);
INSERT INTO table1 (ID, nick, anno, data) VALUES (2,”pluto”,1977,20110207);
INSERT INTO table1 (ID, nick, anno, data) VALUES (3,”paperino”,1980,20110207);
Possiamo quindi redirigere l’output su un file con estensione .sql e andare quindi in phpMyAdmin a lanciare le INSERT cosi’ da popolare il nuovo DB in mysql.
Soluzione per Windows
Scaricare il programma da http://www.bullzip.com/download.php
e seguire questi passi dopo l’installazione per la migrazione da access a mysql:



