Confluence スペースのコピーやリネームを行う方法

2017-09-19 (Tue)  •  By 伊藤  •  ドキュメント  •  Confluence ナレッジベース 翻訳

今回の記事は、Confluence ナレッジ ベース「How to copy or rename a space in Confluence 」の弊社翻訳版です。原文と差異がある場合は、原文の内容が優先されます。
注意 : 現時点において Confluence にはスペースの複製やスペース キーの変更を行う機能はありません。このページの情報は情報提供のみを目的として公開されています。この制限を踏まえた上で実行可能な回避策を講じてください。この情報は積極的に維持されていません。また、十分にテストを行ってから本番環境に適用してください

目的

Confluence 上のスペースのコピーやリネームを行いたい。

解決策

解決策 1 : アトラシアン マーケットプレイス のアドオンを使用する方法

Confluence にはスペースをコピーするための機能が実装されていません。しかし、これを実現するためにサード パーティやサポートされていないプラグインが数多く存在します。

  1. Copy Space プラグイン
  2. 最善のオプションは Copy Space プラグイン をインストールすることです。

    注意 : このプラグインは Atlassian ShipIt の一環としてリリースされている注意してください。また、アトラシアンの開発者が開発したものですが、アトラシアンでは正式にサポートしていません。このプラグインに関する注意については、以下を参照してください。
    注意 : スペースのコピー処理には間が掛かる可能性があります。また、このプラグインの使用中にタイム アウトしたように見えることがあります (たとえコピーされたスペースが正常に作成された場合でも)。この現象が発生した場合、スペースが作成されていないことを必ず確認してからスペースのコピーを再度実行してください。 アトラシアン ブログ の開発者ノートを参照してください。Bitbucket リポジトリからは修正用のソース コードを取得できます。
  3. Copy Page Tree プラグイン 。このプラグインを使用することで、スペース間でのページのコピーが可能となります。
  4. Space Tree Creator プラグイン 。このプラグインを使用することで、ページ ツリーをスペース内にコピーできます。また、検索/置換ツールも実装されています。
  5. Bob Swift CLI ツール 。このツールを使用することで、スペースのコピーにコマンド ラインを使用できます。

解決策 2 : Confluence (Cloud) & Jira (Cloud) の場合 (Server 版では未検証)

Jira (Cloud) と Confluence (Cloud) インスタンスでは、スペース インポートを Jira プロジェクトにリンクすることができます。この処理の際、エクスポートされたファイルではスペース キーが Jira プロジェクト キーに変更されます。

スペースのエクスポートを行い、かつその結果を新規 Jira プロジェクトの新規プロジェクト キーにリンクするためには、以下の操作を行います。

  1. Jira 上で新規プロジェクトを作成します。その際、Confluence スペースにリンクしないようにします。
  2. Confluence 上で スペース -> スペース ツール -> エクスポート -> XML -> 次へ -> 完全エクスポート -> スペースのエクスポート の順に移動します。対象スペースを添付ファイルを含む XML 形式でエクスポートします。
  3. エクスポート結果をダウンロードします。
  4. [スペースのインポート] 画面に移動します。
  5. エクスポートを選択します。その際、スペース インポートをステップ 1 で作成した Jira プロジェクトにリンクするオプションを選択します。
  6. スペースをインポートします。

結果 : インポートされたスペースは、エクスポートされたスペースの複製です。

解決策 3 : スペースを手動で複製/リネームする方法

それ以外の方法として、対象スペースの XML バックアップを修正することで、スペースを手動で複製/リネームできます。

注意 : 多くのスペースを同時にリネームする場合はインスタンス全体をエクスポートする方が簡単です。サイト全体のエクスポートの場合、exportDescriptor.properties ファイルを修正する必要はありません。しかし、以下でスペース キーを変更する必要があります。
<export_folder>/plugin-data/com.atlassian.activeobjects.confluence.spi/activeObjectsBackupRestoreProvider.pdata

サイト全体のバックアップを Confluence にインポートしなおす際に問題が発生しやすいことが知られています。問題が発生した場合は、スペース単位のリネーム作業を行ってください。

ステージ 1 : スペースをリネームする

XML バックアップを生成し、テスト インスタンスを作成する

  1. 2 つめのスペースに対して、新しく、かつ一意のスペース キーと名前を選択します。スペース キーとして使用できるのは、ASCII 文字と数字のみです (A-Z、a-z、0-9)。空白、特殊文字、ならびにアンダースコアをスペース キーに含めることはできません。スペース キーに無効な文字が 1 種類でも含まれている場合、再インポートの際にスタック トレース エラーが発生します。
  2. 実稼働 Confluence インスタンスを他コンピューター上のテスト サーバーに複製します。(その方法については、「How to copy or rename a space in Confluenc」を参照してください。) この時点で実稼働サーバーとテスト サーバーが存在し、その両方が同じデータを格納しています。これにより、実稼働 Confluence インスタンスが破損するリスクを回避できます。
  3. テスト サーバー に管理者としてログインします。
  4. スペース -> スペース ツール -> コンテンツ ツール -> エクスポート -> XML -> 次へ -> 完全エクスポート -> スペースのエクスポート の順に移動します。対象スペースを添付ファイルを含む XML 形式でエクスポートします。
  5. スペースのバックアップを保存します。

Entities.XML ファイルを編集する

  1. スペース バックアップ ファイルを zip ファイル エディターで開き、entities.xml ファイルを探します。
  2. テキスト エディターで entities.xml を編集します。
  3. 以下の古いスペース名を “検索&置換” を行います。Old Space NameNew Space Name を実際の名前に書き換えます。
  4. 検索語句置換後の文字列
    [CDATA[Old Space Name][CDATA[New Space Name]
  5. ユーザー コンテンツに含まれる古いスペース名を “検索” します。これら参照設定の一部、またはすべてを新しいスペース名に置き換える場合、Old Space NameNew Space Name を実際の名前に置き換えます。
  6. 検索語句
    Old Space Name
  7. 以下のスペース キー パターンそれぞに関して “検索&置換” を行います。文字の大文字と小文字が区別されることに注意してください : プレースフォルダー変数 OLDKEY/NEWKEY大文字、または大文字と小文字が混在しているキー を表します。また、oldkey/newkey は、すべて小文字のキー を表します。
  8. 検索語句
    OLDKEY
    spaceKey=OLDKEY
    [OLDKEY:
    key=OLDKEY]
    <spaceKey>OLDKEY</spaceKey>
    ri:space-key="OLDKEY"
    ri:space-key=OLDKEY
    <ac:parameter ac:name="spaces">OLDKEY</ac:parameter>
    <ac:parameter ac:name="spaceKey">OLDKEY</ac:parameter>
    <property name="lowerDestinationSpaceKey"><![CDATA[NEWKEY]]></property>
    <property name="lowerKey">![CDATA[NEWKEY]]></property>
    spaceKey=OLDKEY
    spacekey=oldkey
  9. 修正した entities.XML を保存します。
  10. スペース バックアップ内にある元の entities.xml を修正版で上書きします。

exportDescriptor.properties を編集する

  1. exportDescriptor.properties ファイルをテキスト エディターで編集します。
  2. exportDescriptor.properties ファイル内の spaceKey の値を新しいスペース キーに変更します。

テスト インスタンスに復元して検証を行う

  1. テスト インスタンス に Confluence 管理者としてログインします。
  2. 歯車アイコン -> 一般設定 -> バックアップと復元 の順に移動します。[サイト/スペースのバックアップをアップロードおよび復元を行います。] セクションにおいて、修正済みスペース バックアップを選択します。[インデックスの作成] オプションにチェックを入れ、次に [アップロードと復元] ボタンをクリックします。
  3. 復元処理が完了した時点で新しいスペースにアクセスします。ページ、埋め込まれたリンク、ならびに添付ファイルにアクセスできることを確認します。このステップでのすべてのエラーは、検索/置換が正しく行われなかったことを意味します。ステップ 2 をやり直してください。

ステージ 2 : 実稼働環境に復元する

  1. 実稼働インスタンスのバックアップを取得します。
  2. 実稼働インスタンス に Confluence 管理者としてログインします。
  3. 歯車アイコン -> 一般設定 -> バックアップと復元 の順に移動します。[サイト/スペースのバックアップをアップロードおよび復元を行います。] セクションにおいて、修正済みスペース バックアップを選択します。[インデックスの作成] オプションにチェックを入れ、次に [アップロードと復元] ボタンをクリックします。この回避策を使用した結果、何かしらのデータ損失が発生した場合、すぐにバックアップに戻してください。
  4. 復元処理が完了した時点で新しいスペースにアクセスします。ページ、埋め込まれたリンク、ならびに添付ファイルにアクセスできることを確認します。このステップでの何かしらのエラーが発生した場合は、サイト バックアップに戻してください。
  5. スペースをリネームする場合、古いスペースを削除できます。該当スペース -> スペース ツール -> 概要 -> スペースの削除 の順に移動します。[OK] ボタンをクリックして古いスペースを削除します。

ステージ 3 : スペースの参照設定をリネームする

他スペースから古いスペースへのリンクは変更されずに残ります。スペースのリネームを行っている場合、これらリンクは新スペースをポイントするように変更する必要があります。スペースのコピーを行っている場合は、このステージを省略することで元のスペースをポイントしているリンクをそのままにしておくことができます。

これらリンクの変更作業は、すべてのリンクを変更したい、もしくは一部のみを変更したいかにより異なります。実稼働インスタンスにおいて一部のリンクのみを変更したい、またはまったく変更したくない場合は、各ページを個別に編集する必要があります。すべてのリンクを変更したい場合は、以下の指示に従ってください。

  1. 歯車アイコン -> 一般設定 -> バックアップと復元 の順に移動します。対象スペースを添付ファイルを含む XML 形式を作成します。
  2. サイトの XML バックアップ ファイルを保存します。
  3. 実稼働インスタンスを停止します。
  4. サイト バックアップのコピーを 2 つ作成します。一方のコピーをオリジナル (未修整のバックアップ) として保管しておきます。他方のコピーを修正することになります。こちらのバックアップをリネームし、どちらのコピーで修正を行っているかを明確にしておきます。
  5. 修正用コピーを開き、entities.xml を編集します。
  6. 古いスペース キーへの参照に関して、以下の 4 通りの “検索&置換” を行います。oldkeynewkey とを実際のキーに書き換えます。
  7. 検索語句置換後の文字列
    [oldkey][newkey]
    spaceKey=oldkeyspaceKey=newkey
    [oldkey:[newkey:
    key=oldkey]key=newkey]
  8. 更新した updated entities.xml を修正用サイト XML バックアップ ファイル内に保存します。
  9.  
  10. 実稼働インスタンスを起動します。
  11. 歯車アイコン -> 一般設定 -> バックアップと復元 の順に移動し、修正したサイト XML バックアップをインポートします。問題が発生した場合は、オリジナルの、未修正バックアップを復元し、リンクを手動で修正してください。

以上。


Related Articles

お気軽にお問い合わせください

お問い合わせ