Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
-
Upload
vejlebibea -
Category
Technology
-
view
1.011 -
download
3
description
Transcript of Klar til DDB CMS - migrering af indhold fra Ding1 til Ding2
v/ Ewan Andreasen ([email protected])
Klar til DDB CMS!- Migrering af indhold fra Ding 1 til Ding 2
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
Overblik over kildedata• Kildesitet består af
design, navigation, funktionalitet og indhold
• migreringen tackler KUN indhold
• 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
Overblik over kildens felter
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
Overblik over destinationens felter
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
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.
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)
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.
Migrate UI
- vs. kommandolinjen med drush (anbefales)
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
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)
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
Ø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
Ø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
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
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