SlideShare ist ein Scribd-Unternehmen logo
1 von 9
zopyx.plone.migration
Andreas Jung
ZOPYX Ltd.
Ausgangspunkt
• ca. 15 Plone 2.5 + Plone 3.X aus dem Berliner Schulprojekt mit
Plone BICS
• verschiedene Add-Ons
• verschiedene Anpassungen
• eingeschränktes Budget
• viele kleine Sites, mehrere größere Sites (2 GB)
• kalkulierbare Entwicklungskosten und Riskioabschätzung
• Forderung nach automatisierter Migration, die die wesentlichen
Inhalte und Konfigurationen sauber in Plone 4.2 importiert
• keine Migration von Add-Ons ohne Pendant in Plone 4.x
• Besonderheit: PloneGazette -> EasyNewsletter
• händische Nacharbeit notwendig
Existierende Migrationstechniken
• Standard Plone Migration
• Transmogrifier
• ...und diverse handgestrickte Lösungen
zopyx.plone.migration
• Export von Plone 2.X, 3.X Sites
– Standard AT Typen
– User, Gruppen
– Berechtigungen
– Workflows und Workflow-Zustände
– Struktur der Site
– Metadaten
– Lokale Rollen, Sharing....
– Default Views
• keine vollständige 1:1 Migration
• 80:20 Regel
• exportiert werden die wichtigsten Daten
Export Format
• <site>/content.ini
• <site>/groups.ini
• <site>/members.ini
• <site>/structure.ini
• <site>/contents/<uuid>[.bin]
Importer
• legt neue Plone 4.2 Site an
• importiert exportierten Inhalt sauber unter
Verwendung der offiziellen Plone APIs in Plone
Erweiterbarkeit
• halbwegs sauber programmiert
• feingranulare Funktionalität
• kein projektmigrationsspezifischer Code
• klein und kompakt
– exporter.py: 450 LOC
– importer.py: 670 LOC
Migrationsweisheiten:
• Migrationen ohne blutige Nasen gibt es nicht
• Jede Migration ist anders
• Jede Migration dauert länger als man denkt
• Es existiert kein Allheilrezept für Migrationen
Repository
• https://github.com/zopyx/zopyx.plone.migration

Weitere ähnliche Inhalte

Was ist angesagt?

Dzug Zope Optimized
Dzug Zope OptimizedDzug Zope Optimized
Dzug Zope Optimized
Andreas Jung
 

Was ist angesagt? (11)

20131028 named braches
20131028 named braches20131028 named braches
20131028 named braches
 
Plone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST APIPlone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST API
 
Atlassian Confluence als Software-Infrastruktur
Atlassian Confluence als Software-InfrastrukturAtlassian Confluence als Software-Infrastruktur
Atlassian Confluence als Software-Infrastruktur
 
Dzug Zope Optimized
Dzug Zope OptimizedDzug Zope Optimized
Dzug Zope Optimized
 
Der gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open SourceDer gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open Source
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
 
Testing TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with BehatTesting TYPO3 Flow Applications with Behat
Testing TYPO3 Flow Applications with Behat
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
 
eZ Components
eZ ComponentseZ Components
eZ Components
 
Frontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTSFrontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTS
 
HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7
 

Andere mochten auch

Konfigurationsgesteuerte Buildouts Dzug 2008
Konfigurationsgesteuerte Buildouts   Dzug 2008Konfigurationsgesteuerte Buildouts   Dzug 2008
Konfigurationsgesteuerte Buildouts Dzug 2008
Andreas Jung
 
Gost 19980 74
 Gost 19980 74 Gost 19980 74
Gost 19980 74
Kinlay89
 
Kundenentscheidungen in multimedialen Vertriebswelt
Kundenentscheidungen in multimedialen VertriebsweltKundenentscheidungen in multimedialen Vertriebswelt
Kundenentscheidungen in multimedialen Vertriebswelt
Katja Schneider
 
Case Bebeu, Perdeu - MJ
Case Bebeu, Perdeu - MJCase Bebeu, Perdeu - MJ
Case Bebeu, Perdeu - MJ
SLAPropaganda
 
Gost 15945 82
 Gost 15945 82 Gost 15945 82
Gost 15945 82
Kinlay89
 

Andere mochten auch (15)

Onkopedia - ein medizinisches Fachportal auf Basis von Plone
Onkopedia  - ein medizinisches Fachportal auf Basis von PloneOnkopedia  - ein medizinisches Fachportal auf Basis von Plone
Onkopedia - ein medizinisches Fachportal auf Basis von Plone
 
Eggs, Buildouts und andere Wunderlichkeiten
Eggs, Buildouts und andere WunderlichkeitenEggs, Buildouts und andere Wunderlichkeiten
Eggs, Buildouts und andere Wunderlichkeiten
 
Konfigurationsgesteuerte Buildouts Dzug 2008
Konfigurationsgesteuerte Buildouts   Dzug 2008Konfigurationsgesteuerte Buildouts   Dzug 2008
Konfigurationsgesteuerte Buildouts Dzug 2008
 
Produce & Publish Authoring Environment V 2.0 (english version)
Produce & Publish Authoring Environment V 2.0 (english version)Produce & Publish Authoring Environment V 2.0 (english version)
Produce & Publish Authoring Environment V 2.0 (english version)
 
Why we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseWhy we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL Database
 
AMERICAN INFLUENCE
AMERICAN INFLUENCEAMERICAN INFLUENCE
AMERICAN INFLUENCE
 
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
 
Gost 19980 74
 Gost 19980 74 Gost 19980 74
Gost 19980 74
 
Studie: Exzellenz im Zahlungsverkehr
Studie: Exzellenz im ZahlungsverkehrStudie: Exzellenz im Zahlungsverkehr
Studie: Exzellenz im Zahlungsverkehr
 
Lumnr brchr
Lumnr brchrLumnr brchr
Lumnr brchr
 
Facebook
FacebookFacebook
Facebook
 
Kundenentscheidungen in multimedialen Vertriebswelt
Kundenentscheidungen in multimedialen VertriebsweltKundenentscheidungen in multimedialen Vertriebswelt
Kundenentscheidungen in multimedialen Vertriebswelt
 
Case Bebeu, Perdeu - MJ
Case Bebeu, Perdeu - MJCase Bebeu, Perdeu - MJ
Case Bebeu, Perdeu - MJ
 
PR im Social Web
PR im Social WebPR im Social Web
PR im Social Web
 
Gost 15945 82
 Gost 15945 82 Gost 15945 82
Gost 15945 82
 

Ähnlich wie zopyx.plone migration - Plone Hochschultagung 2013

Studiosdigital wieninternational.at
Studiosdigital wieninternational.atStudiosdigital wieninternational.at
Studiosdigital wieninternational.at
StudiosDigital GmbH
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
Stefan Hilpp
 

Ähnlich wie zopyx.plone migration - Plone Hochschultagung 2013 (20)

Studiosdigital wieninternational.at
Studiosdigital wieninternational.atStudiosdigital wieninternational.at
Studiosdigital wieninternational.at
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
Deployment
DeploymentDeployment
Deployment
 
JIRA at ImmobilienScout24
JIRA at ImmobilienScout24JIRA at ImmobilienScout24
JIRA at ImmobilienScout24
 
Notes Sharepoint Migration
Notes Sharepoint MigrationNotes Sharepoint Migration
Notes Sharepoint Migration
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
 
Warum gerade TYPO3?
Warum gerade TYPO3?Warum gerade TYPO3?
Warum gerade TYPO3?
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
git Vorstellung
git Vorstellunggit Vorstellung
git Vorstellung
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen RechenzentrumCloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
Cloud-Native experience mit einer Container-Plattform im eigenen Rechenzentrum
 
Gruppe Camichel
Gruppe CamichelGruppe Camichel
Gruppe Camichel
 
Tipps zur Performanceoptimierung für Liferay Portal
Tipps zur  Performanceoptimierung für Liferay PortalTipps zur  Performanceoptimierung für Liferay Portal
Tipps zur Performanceoptimierung für Liferay Portal
 
Migration joomla 1.5 : 2.5
Migration joomla 1.5 : 2.5Migration joomla 1.5 : 2.5
Migration joomla 1.5 : 2.5
 
TYPO3 CMS 7
TYPO3 CMS 7TYPO3 CMS 7
TYPO3 CMS 7
 
Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
 
WebSocket my APEX!
WebSocket my APEX!WebSocket my APEX!
WebSocket my APEX!
 

Mehr von Andreas Jung

Mehr von Andreas Jung (20)

State of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdfState of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdf
 
Typesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 NamurTypesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 Namur
 
Onkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 DresdenOnkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 Dresden
 
PrintCSS W3C workshop at XMLPrague 2020
PrintCSS W3C workshop at XMLPrague 2020PrintCSS W3C workshop at XMLPrague 2020
PrintCSS W3C workshop at XMLPrague 2020
 
PrintCSS workshop XMLPrague 2020
PrintCSS workshop XMLPrague 2020PrintCSS workshop XMLPrague 2020
PrintCSS workshop XMLPrague 2020
 
Plone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, BelgiumPlone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, Belgium
 
Plone migrations using plone.restapi
Plone migrations using plone.restapiPlone migrations using plone.restapi
Plone migrations using plone.restapi
 
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
 
Generierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSSGenerierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSS
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
The Plone and The Blockchain
The Plone and The BlockchainThe Plone and The Blockchain
The Plone and The Blockchain
 
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCsContent Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
 
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
 
PyFilesystem
PyFilesystemPyFilesystem
PyFilesystem
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniques
 
Integration of Plone with eXist-db
Integration of Plone with eXist-dbIntegration of Plone with eXist-db
Integration of Plone with eXist-db
 
Plone Integration with eXist-db - Structured Content rocks
Plone Integration with eXist-db - Structured Content rocksPlone Integration with eXist-db - Structured Content rocks
Plone Integration with eXist-db - Structured Content rocks
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will Die
 

zopyx.plone migration - Plone Hochschultagung 2013

  • 2. Ausgangspunkt • ca. 15 Plone 2.5 + Plone 3.X aus dem Berliner Schulprojekt mit Plone BICS • verschiedene Add-Ons • verschiedene Anpassungen • eingeschränktes Budget • viele kleine Sites, mehrere größere Sites (2 GB) • kalkulierbare Entwicklungskosten und Riskioabschätzung • Forderung nach automatisierter Migration, die die wesentlichen Inhalte und Konfigurationen sauber in Plone 4.2 importiert • keine Migration von Add-Ons ohne Pendant in Plone 4.x • Besonderheit: PloneGazette -> EasyNewsletter • händische Nacharbeit notwendig
  • 3. Existierende Migrationstechniken • Standard Plone Migration • Transmogrifier • ...und diverse handgestrickte Lösungen
  • 4. zopyx.plone.migration • Export von Plone 2.X, 3.X Sites – Standard AT Typen – User, Gruppen – Berechtigungen – Workflows und Workflow-Zustände – Struktur der Site – Metadaten – Lokale Rollen, Sharing.... – Default Views • keine vollständige 1:1 Migration • 80:20 Regel • exportiert werden die wichtigsten Daten
  • 5. Export Format • <site>/content.ini • <site>/groups.ini • <site>/members.ini • <site>/structure.ini • <site>/contents/<uuid>[.bin]
  • 6. Importer • legt neue Plone 4.2 Site an • importiert exportierten Inhalt sauber unter Verwendung der offiziellen Plone APIs in Plone
  • 7. Erweiterbarkeit • halbwegs sauber programmiert • feingranulare Funktionalität • kein projektmigrationsspezifischer Code • klein und kompakt – exporter.py: 450 LOC – importer.py: 670 LOC
  • 8. Migrationsweisheiten: • Migrationen ohne blutige Nasen gibt es nicht • Jede Migration ist anders • Jede Migration dauert länger als man denkt • Es existiert kein Allheilrezept für Migrationen