1. Data Migration
Marco Vito Moscaritolo
@mavimo
marco@agavee.com
2. Chi sono?
Sviluppatore Drupal dal 2007
Socio fondatore della
Associazione Drupal Italia
ed attuale presidente
Consulente freelance e
membro di agavee
Contatti
@mavimo
marco@agavee.com
3. Come procederemo
Parte introduttiva
I tool che si possono
“teorica” sulle utilizzare (e quando
procedure di possono essere usati)
migrazione
Disclaimer
Io NON conosco la verità, potrei sbagliarmi!
NON esiste un metodo unico e sempre valido per migrare i dati
Tutto quello che dirà NON potrà MAI essere usato contro di me
Le mie affermazioni si basano sulla mia esperienza, se vi
risulta diversamente non fatevi problemi a contraddirmi, anzi!
7. Forse c'è un modo migliore?
!!
u g!!
ai b
io
cch
Facciamolo fare
O
alle macchine!
8. Come procediamo?
Recuperare i dati di partenza
Archiviarli in maniera da
essere manipolabili facilmente
Normalizzarli/ripulirli
(per quanto possibile)
Esporli al sistema di import
Importarli
14. Esporre i dati da migrare
Attraverso WebService
(più o meno complessi)
SOAP
XML-RPC
Feed
Attraverso connessioni
dirette al DataBase
Dati importati da CSV
Provenienti da dump di DB
16. Processo di importazione
Procedura iterativa
Dati iniziali
Importo i dati
Verifico i dati
Pulizia dati
Se ci sono errori correggo i
dati di partenza Importazione
Cancello/sostituisco i dati
importati con una nuova Verifica dei dati
importazione
Ripeto e termino
l'importazione quando i dati
Importazione
sono importati corettamente terminata
17. Raccogliere i dati
Punto non standardizzabile,
dipende dalle sorgenti a
disposizione.
Normalmente CSV o SQL
Script (bash/php/perl/...) per
organizzare i dati da importare
Utilizzo di PhpMyAdmin,
MySQL workbanch per l'import
(anche mysql da CLI)
18. Esporre i dati
Accesso al DB Attraverso webservice
Metodo consigliato,
Il webservice deve
meno problemi nella essere accessibile
conversione dei dati dalla macchina che si
Si può ottenere da file occupa
CSV o XML esportati dell'importazione
da altri strumenti con
I tempi per la
poco lavoro migrazione, a causa
della connessione
possono essere lunghi
19. Importazione dei dati
Accesso al DB Attraverso webservice
Utilizzo di migrate
Utilizzo di feeds
Soluzione consigliata
I tempi per la
migrazione, a causa
della connessione
Attraverso CSV possono essere lunghi
Utilizzo di
node_import
Utilizzo di feeds
20. node_import / node_export
Disponibile solo per
Permette di importare
D6, abbandonato in dati precedentemente
favore di feeds esportati (comodo per
Permette di passaggi di versione)
importare contenuti
con i corrispettivi
campi CCK più
semplici
21. feeds
Configurabile da UI
Permette di
importare nodi,
utenti, tassonomia
Non gestisce le
relazioni tra diversi
elementi
Operazioni di
importazione
schedulabili
22. feeds
Logica basata su
Fetcher: gestisce
l'importazione del dato
Parser: il modo in cui
l'informazione viene
elaborata
Processor: in modo in
cui le informazioni
ottenute vengono
inserite in Drupal
23. Migrate
(ramo 1.x – unsupported – D6)
Configurabile da UI
Dipende da
schema, table
wizard, views,
views bulk update
Richiede che i dati
siano sul DB di
Drupal per poter
essere mappati
24. Migrate
(ramo 2.x – supported – D6/D7)
NON configurabile da
UI
Permette di importare
dati da più sorgenti
(CSV, SQL, JSON,
XML, ...)
Completamente
strutturato attraverso
oggetti per la
migrazione dei dati