ݺߣ

ݺߣShare a Scribd company logo
Da X a Drupal 8, migra tutto e vivi sereno
DAXADRUPAL,MIGRATUTTOEVIVI
SERENO
LUCALUSSO
SENIORDRUPALDEVELOPER@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
MIGRATEEMIGRATEDRUPAL,ACHE
PUNTOSIAMO?
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)
COSACAMBIAINDRUPAL8?
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
MIGRAREDADRUPAL6
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
MIGRAREDAUN'ALTRASORGENTEDATI
Migriamo dati provenienti da un web service REST
Un nuovo SourcePlugin, due nuovi ProcessPlugin
Creiamo nuovi nodi del CT weather
ILWORKFLOW
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
IFILECOINVOLTI-MAPPING
migrate.migration.weather.yml
IFILECOINVOLTI-SOURCEPLUGIN
OWMSource.php
IFILECOINVOLTI-PROCESSPLUGIN
ToFahrenheit.php
BuildTitle.php
ILFILEDIMAPPING
migrate.migration.weather.yml
È un file .YML che contiene diverse informazioni
Nome migrazione
Gruppo
Sorgente dei dati
Mapping tra sorgente e destinazione
ILFILEDISOURCE
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()
IFILEDIPROCESS
Permettono di processare i dati ottenuti
Utili quando vogliamo effettuare delle modifiche
(concatenare stringhe, cambiare formato, ...)
Estendono ProcessPluginBase
Reimplementano il metodo transform()
IFILEDIPROCESS
ToFahrenheit.php
Converte la temperatura da gradi Celsius a Fahrenheit
IFILEDIPROCESS
BuildTitle.php
Concatena la data della previsione al titolo
DEMO
Hackathon & Drupal school -> domani
Da X a Drupal 8, migra tutto e vivi sereno
Grazie!
Domande?
Da X a Drupal 8, migra tutto e vivi sereno
Ad

Recommended

[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
[drupalday2017] - Async navigation with a lightweight ES6 framework
[drupalday2017] - Async navigation with a lightweight ES6 framework
DrupalDay
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
DrupalDay
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
DrupalDay
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
DrupalDay
Come progettare e realizzare una distribuzione in Drupal 8
Come progettare e realizzare una distribuzione in Drupal 8
DrupalDay
Once you go cloud you never go down
Once you go cloud you never go down
DrupalDay
Tooling per il tema in Drupal 8
Tooling per il tema in Drupal 8
DrupalDay
Your Entity, Your Code
Your Entity, Your Code
DrupalDay
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party
DrupalDay
[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
[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
DrupalDay
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
[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 ...
DrupalDay
[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
DrupalDay
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
DrupalDay
[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
DrupalDay
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
DrupalDay
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
DrupalDay
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.eu
DrupalDay
Drupal per la PA
Drupal per la PA
DrupalDay
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay

More Related Content

Viewers also liked (20)

Your Entity, Your Code
Your Entity, Your Code
DrupalDay
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party
DrupalDay
[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
[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
DrupalDay
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
[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 ...
DrupalDay
[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
DrupalDay
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
DrupalDay
[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
DrupalDay
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
DrupalDay
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
DrupalDay
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.eu
DrupalDay
Drupal per la PA
Drupal per la PA
DrupalDay
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay
Your Entity, Your Code
Your Entity, Your Code
DrupalDay
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Devel - D8 release party
DrupalDay
[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
[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
DrupalDay
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
[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 ...
DrupalDay
[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
DrupalDay
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
DrupalDay
[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
DrupalDay
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
DrupalDay
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
DrupalDay
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.eu
DrupalDay
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay

Da X a Drupal 8, migra tutto e vivi sereno