![Page 2: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/2.jpg)
Planlægning
• Hvad er migrering?• En god migrationsproces– Er automatiseret– Kan rulles tilbage og gentages– Kan udføres over flere omgange uden ”rod i data”
• Overblik over kildens data• Klargøring af destinationssitet• Mapping• Håndtering af afhængigheder
![Page 3: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/3.jpg)
Overblik over kildedata• Kildesitet består af
design, navigation, funktionalitet og indhold
• migreringen tackler KUN indhold
![Page 4: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/4.jpg)
• Migrering ved arbejde direkte på databasens tabeller er vanskeligt at få korrekt
• Antal trin der skal udføres er så mange, at en automatiseret proces er et krav
![Page 5: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/5.jpg)
Overblik over kildens felter
![Page 6: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/6.jpg)
Klargøring af destinationssitet
• Bring sitet til fungerende tilstand– Få styr på design, navigation og funktionalitet
• Opret eksempeldata (for senere sammenligning)• Upload kildedata til destinationssitet• Installér migrate-moduler
– migrate (men hent RC1 fra https://drupal.org/node/2029049 ) (+ enable migrate UI)
– migrate_extras, – migrate_d2d (men hent beta1 fra https://drupal.org/node/2001680– migrate_ding1_ding2 (http://github.com/vejlebib/migrate_ding1_ding2) – Enable Migrate, Date Migration, Migrate Extras, Drupal-to-Drupal Migration
og Migration fra Ding1 til Ding2
![Page 7: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/7.jpg)
Overblik over destinationens felter
![Page 8: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/8.jpg)
Mapping strategier• 1-til-1 – eks. titel titel
• Split (1-til-mange)– eks. navn fornavn, efternavn
• Merge (mange-til-1)– Eks. fornavn, efternavn fulde navn
• Drop (kan ikke overføres – ingen match)• Standardværdi – eks. destinationens nye felter
• Transformation– eks. brug ny term i stedet for gammel
![Page 9: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/9.jpg)
Håndtering af afhængigheder
• Afhængigheder afgør rækkefølgen af migrationens dele– Eks. kan huskelister ikke migreres, før brugere er
migreret, – Arrangementssider kan ikke migreres, før
biblioteker og filer er migreret,– Etc.
![Page 10: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/10.jpg)
Brugerroller (DingRole)
Brugerkonti (DingUser)
Autentificering (DingAuthmap)
Alma profil(DingProfileProviderAlma)
Emneord (DingEventCategoryTerm)
(DingEventTargetTerm)(DingNewsCategoryTerm)
(DingTagsTerm)
Filer(DingFile)
Kampagner(DingCampaign)
Biblioteker(DingLibrary)
Medarbejderprofil(DingProfileStaff)
Arrangementer(DingEvent)
Evt. Place2book int.(DingPlace2book)
Sider(DingPage)
Nyheder(DingNews)
Afhængigheder i DDB CMS
Bogmærker (DingBookmark)
![Page 11: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/11.jpg)
Migrate (drupalmodul)• Kan migrere data ind i Drupal fra mange datakilder
– Databaser (MySQL, Oracle, MS-SQL ..), tekstfiler (XML, JSON, CSV)– Men IKKE ustrukturerede data (eks. statisk HTML)
• Bruger drupals funktioner til oprettelse af indhold (eks. node_save)– Kode fra øvrige moduler der er installeret gennemgås også når nyt indhold
gemmes
• Kan manipulere data før, under og efter overførsel• Arkitektur
– Migrate er basismodulet– Andre moduler bidrager med egen migrate-support – CMS-specifikke moduler bygger ovenpå migrate, eks.
![Page 12: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/12.jpg)
Migrate UI
- vs. kommandolinjen med drush (anbefales)
![Page 13: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/13.jpg)
Opsamling af begreber
Kildedata samles op og præsenteres som rækker af data, der kan manipuleres medI destinationen skabes et nyt objekt (bruger, indholdsside m.fl.)I migrations-map noterer systemet, hvilke nye ID på destinationssitet der svarer til de gamle ID i
kildedataMapping af felter er angivelsen af, hvilke felter i kildens data der svarer til hvilke felter i
destinationen.En migration-klasse indeholder typisk flere felt-mappings.
Migrationen som proces består af flere migrations-klasser, der køres i en bestemt rækkefølge for at håndtere afhængigheder indholdet imellem
![Page 14: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/14.jpg)
migrate_ding1_ding2 (modul)
• Bygger ovenpå modulet Drupal-to-drupal data migration (https://drupal.org/project/migrate_d2d)
• Overfører data fra et ding1 site ind i DDB CMS (et ding2-site)
• Andre CMS-specifikke moduler:– Wordpress Migrate (https://drupal.org/project/wordpress_migrate)– TYPO3 migrate (https://drupal.org/project/TYPO3_migrate)
![Page 15: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/15.jpg)
Demonstration og øvelser
• Opstart af DrupalPro (https://drupal.org/project/drupalpro )
• Upload kildedata– mysql -u root -p vejle_ding1 < VejleBib-2013-03-25.sql– TJEK: åbn database i phpMyAdmin
• Intro til phpMyAdmin• Opsætning af migrate
– Ret i settings.php, db-indstillinger– Ret i settings.php, sti til filer– Overfør drupal_private_key
• Intro til migrate UI• Intro til en migrate-klasse
![Page 16: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/16.jpg)
Øvelser: kørsel af migrations-klasser
• Prøv at køre DingEvent– drush mi DingEvent– Afhængigheder er ikke opfyldt..
• Kør DingRole– drush mi DingRole
• Kør DingUser– Med feedback
– drush mi --feedback=”5 items” DingUser • Kør DingFile
– Med limit– drush mi --limit=”10 items” DingFile
• Rul DingFile tilbage– drush mr DingFile
![Page 17: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/17.jpg)
Øvelser: Arbejde med andre CMS
• Artesis web: Ding2 Ding2• Wordpress: Brug Wordpress Migrate (
https://drupal.org/project/wordpress_migrate)– Generér wordpress export-fil– Brug migrate UI
![Page 18: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/18.jpg)
Forberedelsen til DDB CMS
• Øv migrationer med egne data (brug ding2tal kode)
• Opret eget DDB CMS site når den frigives• Hent altid seneste version af
migrate_ding1_ding2
![Page 19: Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2](https://reader035.vdocuments.pub/reader035/viewer/2022070321/558cc863d8b42a1d7c8b4712/html5/thumbnails/19.jpg)
Referencer• Kort introduktion ved Ben Dougherty: http://
devblog.com.au/migrating-drupal-6-to-drupal-7-with-the-migration-framework
• Migrate documentation: https://drupal.org/node/415260• http://www.slideshare.net/primerg/migration-from-legacy-cms-to-drupal
-4808821• Drupal-to-drupal data migration documentation:
https://drupal.org/node/1813498• Acquia Drupal-to-Drupal intro, part 1:
http://www.acquia.com/blog/drupal-drupal-data-migration-part-1-basics• Acquia Drupal-to-Drupal intro, part 2:
http://www.acquia.com/blog/drupal-drupal-data-migration-part-2-architecture
• https://www.acquia.com/blog/migrating-drupal-way-part-i-creating-node• Video: “Get your bits in!” http://vimeo.com/54448150