Confluence bietet zwar die Möglichkeit einzelne Seiten in andere Spaces zu kopieren, aber dabei bleiben Anhänge und Unterseiten auf der Strecke. Mit dem Atlassian Command Line Interface lassen sich eine Menge netter Befehle auf der Kommandozeile ausführen, darunter auch dieser:
./confluence.sh -s https://server.local/confluence/ -u username -p secret \
-a copyPage --space currentSpace --title pageTitle --newSpace newSpace \
--parent newParentPage --descendents --copyAttachments --copyComments --copyLabels
Der Befehl verbindet sich mit dem Server und kopiert die Seite pageTitle im Space currentSpace mit all ihren Unterseiten, Dateianhängen und Kommentaren in den Space newSpace als Unterseite von newParentPage.
Die aktuelle Version des Command Line Interface kostet zwar mittlerweile Geld, die letzte freie Version (unter BSD Lizenz) ist jedoch immer noch zum Download verfügbar und kann auch schon eine ganze Menge.
Quelle: (The pain of) managing content in Confluence
Ergänzung 29.10.2012
Mit der hier beschriebenen Methode konnte ich die meisten Seiten migrieren, leider gab es in einem Punkt Probleme: Die Confluence Remote Schnittstelle kommt mit dem Upload von größeren Dateien nicht klar, die Grenze scheint irgendwo bei 5MB oder so zu liegen. Der Fehler ist bereits seit einem Jahr bekannt, hier hat sich jedoch noch nichts getan.
Dafür hat mich die Dokumentation von Confluence zum Löschen von Seiten auf eine Idee gebracht:
- Seite aus dem alten Space in einen neuen, temporären Space 1 verschieben
- temporären Space kopieren
- Seite aus temporärem Space 1 zurück in den alten Space verschieben
- Seite aus temporärem Space 2 in den Ziel-Space verschieben
- beide temporäre Spaces löschen
Die Prozedur habe ich noch nicht getestet, ich sehe allerdings keinen Grund wieso es nicht funktionieren sollte.