2

plone 4.1 で削除されたフォルダを復元するにはどうすればよいですか?

4

2 に答える 2

7

フォルダーを削除したトランザクションをまだ圧縮していない場合は、フォルダーを復元できます。

まず、ZMI の親フォルダーの [元に戻す] タブを使用します。すべての変更を効果的にロールバックするには、システム上の他の多くのもの (通常はカタログ) が変更されているため、うまくいかない可能性があります。

次のステップは、もう少し面倒で複雑です。次に行う必要があるのは、オブジェクト データベース (ZODB) をラッパーで開き、履歴の特定の時点でのデータベースの状態を表示することです。これを行うには、Zope サーバー構成を手動で編集する必要があります。ブログ投稿に手順を書きましたが、それらの手順は少し古くなっています。

現代の Plone ビルドアウトでは、卵をビルドアウトに追加する必要があり、Zope の設定を;zc.beforestorageに切り替える必要があります。beforestorage ラッパーを使用すると、データベースが読み取り専用になり、製品インストール コードがデータベースにコミットしようとするため、起動に失敗します。enable-product-installationFalse

[instance]
eggs +=
    zc.beforestorage
zope-conf-additional +=
    enable-product-installation False

zope.confビルドアウトを再構築した後、インスタンスに関連付けられたファイルを開く必要があります。通常、サーバーを で起動する場合bin/instance、そのファイルは にありparts/instance/etc/zope.confます。使用されているスクリプトはbin/、パーツ名 (instanceこの例では) と一致します。

ZODB メイン データベースを定義する部分を見つけます。

<zodb_db main>
    # Main database
    cache-size 10000

    # Blob-enabled FileStorage database
    <blobstorage>
      blob-dir /path/to/var/blobstorage
      <filestorage>
        path /path/to/var/filestorage/Data.fs
      </filestorage>
    </blobstorage>
    mount-point /
</zodb_db>

beforestorageその宣言にラッパーを追加する必要があります。

<zodb_db main>
    # Main database
    cache-size 10000

    %import zc.beforestorage
    <before>
    before 2012-12-01T12:00:00

    # Blob-enabled FileStorage database
    <blobstorage>
      blob-dir /path/to/var/blobstorage
      <filestorage>
        path /path/to/var/filestorage/Data.fs
      </filestorage>
    </blobstorage>

    </before>

    mount-point /
</zodb_db>

before <iso timestamp>そこにある行に注意してください。インスタンスを起動すると、サイトはそのタイムスタンプで表示されます。フォルダを削除した時点に近いものを選択してください。これで、(再び ZMI を使用して).zexpファイルにエクスポートできます。ファイルへの変更を元に戻しzope.conf、再起動して、復元されたフォルダーをインポートします。

于 2012-12-07T11:01:23.047 に答える
3

はい、問題のフォルダにあるZopeManagementInterfaceの[元に戻す]タブを使用することは可能です。これにより、フォルダを削除したデータベーストランザクションがロールバックされ、フォルダを削除したばかりの場合に最も効果的に機能します。追加情報は次の場所にあります:https ://plone.org/documentation/kb/using-the-zope-undo-system-to-roll-back

于 2012-12-07T04:31:28.163 に答える