SlideShare a Scribd company logo
1 of 27
Download to read offline
DA X A DRUPAL, MIGRA TUTTO E VIVI
SERENO
LUCA LUSSO
SENIOR DRUPAL DEVELOPER @WELLNET
Twitter: @lussoluca
Linkedin: it.linkedin.com/pub/luca-lusso/29/3a9/1a2/
Drupal.org: www.drupal.org/u/lussoluca
www.drupal.org/project/devel
www.drupal.org/project/xhprof
AGENDA
Migrate e Migrate Drupal, a che punto siamo?
Cosa cambia in Drupal 8?
Migrare da Drupal 6
Migrare da un'altra sorgente dati
MIGRATE E MIGRATE DRUPAL, A CHE
PUNTO SIAMO?
Marcato come experimental, finito per 8.1.0
No UI (nel core)
Necessita di alcuni moduli contrib
migrate_plus (gruppi di migrazioni, evento
prepare_row)
migrate_tools (UI gruppi di migrazioni, comandi
drush)
migrate_upgrade (UI e comando drush per migrare
da Drupal 6 e 7)
COSA CAMBIA IN DRUPAL 8?
Definizione migrazioni in yml e non in classi
Uso massivo di plugin (source, process, destination)
Uso di eventi Symfony per il ciclo di vita di una
migrazione
MIGRARE DA DRUPAL 6
Quasi tutto supportato (Views no però...)
I moduli definiscono i template di migrazione
drush migrate-upgrade
--legacy-db-url=mysql://root:root@localhost/drupal6
--legacy-root=http://drupal6
--configure-only
drush mi --all
DEMO
MIGRARE DA UN'ALTRA SORGENTE DATI
Migriamo dati provenienti da un web service REST
Un nuovo SourcePlugin, due nuovi ProcessPlugin
Creiamo nuovi nodi del CT weather
IL WORKFLOW
I dati vengono estratti da una API di terze parti
(GoogleAPI, Facebook Graph, ...)
Il modullo di migrazione mappa queste informazioni
nel nostro modello
I dati vengono esposti nelle pagine del nostro sito
I FILE COINVOLTI - MAPPING
migrate.migration.weather.yml
I FILE COINVOLTI - SOURCE PLUGIN
OWMSource.php
I FILE COINVOLTI - PROCESS PLUGIN
ToFahrenheit.php
BuildTitle.php
IL FILE DI MAPPING
migrate.migration.weather.yml
È un file .YML che contiene diverse informazioni
Nome migrazione
Gruppo
Sorgente dei dati
Mapping tra sorgente e destinazione
IL FILE DI SOURCE
OWMSource.php
Permette di estrarre le informazioni dalla sorgente (file
CSV, database, API, ...)
Estende SourcePluginBase e ne reimplementa alcuni
metodi metodi fondamentali
OVERRIDE
initializeIterator()
OVERRIDE
initializeIterator()
getIds()
OVERRIDE
initializeIterator()
getIds()
__toString()
OVERRIDE
initializeIterator()
getIds()
__toString()
fields()
I FILE DI PROCESS
Permettono di processare i dati ottenuti
Utili quando vogliamo effettuare delle modifiche
(concatenare stringhe, cambiare formato, ...)
Estendono ProcessPluginBase
Reimplementano il metodo transform()
I FILE DI PROCESS
ToFahrenheit.php
Converte la temperatura da gradi Celsius a Fahrenheit
I FILE DI PROCESS
BuildTitle.php
Concatena la data della previsione al titolo
DEMO
Hackathon & Drupal school -> domani
Grazie!
Domande?
Da X a Drupal 8, migra tutto e vivi sereno

More Related Content

Viewers also liked

Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your CodeDrupalDay
 
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release partyDrupalDay
 
[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 Stakeholders[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 StakeholdersDrupalDay
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
 
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al themingDrupalDay
 
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...DrupalDay
 
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...DrupalDay
 
[drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance![drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance!DrupalDay
 
[drupalday2017] - Quando l’informazione è un servizio
[drupalday2017] - Quando l’informazione è un servizio[drupalday2017] - Quando l’informazione è un servizio
[drupalday2017] - Quando l’informazione è un servizioDrupalDay
 
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal![drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!DrupalDay
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in piecesDrupalDay
 
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...DrupalDay
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client ManagerDrupalDay
 
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5DrupalDay
 
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case studyMantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case studyDrupalDay
 
Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...
Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...
Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...DrupalDay
 
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.eu
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.euLa semantica per automatizzare una redazione web: l'esperienza di Innolabplus.eu
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.euDrupalDay
 
Drupal per la PA
Drupal per la PADrupal per la PA
Drupal per la PADrupalDay
 
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.DrupalDay
 

Viewers also liked (20)

Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your Code
 
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party
 
[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 Stakeholders[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 Stakeholders
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
 
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
 
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
 
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
 
[drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance![drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance!
 
[drupalday2017] - Quando l’informazione è un servizio
[drupalday2017] - Quando l’informazione è un servizio[drupalday2017] - Quando l’informazione è un servizio
[drupalday2017] - Quando l’informazione è un servizio
 
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal![drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
 
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
 
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
 
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case studyMantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
 
Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...
Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...
Drupal 8: dal download del Core alla pubblicazione in produzione. Cos'è cambi...
 
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.eu
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.euLa semantica per automatizzare una redazione web: l'esperienza di Innolabplus.eu
La semantica per automatizzare una redazione web: l'esperienza di Innolabplus.eu
 
Drupal per la PA
Drupal per la PADrupal per la PA
Drupal per la PA
 
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
 

Similar to Da X a Drupal 8, migra tutto e vivi sereno

Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernosparkfabrik
 
Drupal Day 2012 - ASSOCIAZIONE LUCA COSCIONI
Drupal Day 2012 - ASSOCIAZIONE LUCA COSCIONIDrupal Day 2012 - ASSOCIAZIONE LUCA COSCIONI
Drupal Day 2012 - ASSOCIAZIONE LUCA COSCIONIDrupalDay
 
Drush make vs composer
Drush make vs composer Drush make vs composer
Drush make vs composer sparkfabrik
 
Creare distribuzioni con drupal
Creare distribuzioni con drupalCreare distribuzioni con drupal
Creare distribuzioni con drupalAlessandro Capra
 
Drupal
DrupalDrupal
DrupalNaLUG
 
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache CordovaDrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache CordovaDrupalDay
 
Presentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal ItaliaPresentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal ItaliaMarcello Testi
 
Sviluppare applicazioni Facebook utilizzando Drupal
Sviluppare applicazioni Facebook utilizzando DrupalSviluppare applicazioni Facebook utilizzando Drupal
Sviluppare applicazioni Facebook utilizzando DrupalTwinbit
 

Similar to Da X a Drupal 8, migra tutto e vivi sereno (11)

Drupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native modernoDrupal 10: un framework PHP di sviluppo Cloud Native moderno
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
 
Drupal Day 2012 - ASSOCIAZIONE LUCA COSCIONI
Drupal Day 2012 - ASSOCIAZIONE LUCA COSCIONIDrupal Day 2012 - ASSOCIAZIONE LUCA COSCIONI
Drupal Day 2012 - ASSOCIAZIONE LUCA COSCIONI
 
Drush make vs composer
 Drush make vs composer Drush make vs composer
Drush make vs composer
 
Drush make vs composer
Drush make vs composer Drush make vs composer
Drush make vs composer
 
Creare distribuzioni con drupal
Creare distribuzioni con drupalCreare distribuzioni con drupal
Creare distribuzioni con drupal
 
Drupal
DrupalDrupal
Drupal
 
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache CordovaDrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
DrupalGap: crea una app Android (ed iOS) con Drupal, Drupalgap ed Apache Cordova
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 
Presentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal ItaliaPresentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal Italia
 
Sviluppare applicazioni Facebook utilizzando Drupal
Sviluppare applicazioni Facebook utilizzando DrupalSviluppare applicazioni Facebook utilizzando Drupal
Sviluppare applicazioni Facebook utilizzando Drupal
 
Drupal7
Drupal7Drupal7
Drupal7
 

Da X a Drupal 8, migra tutto e vivi sereno