0

ATTypes の拡張として作成されたカスタム コンテンツ タイプがあり、そのうちの 2 つは ATFile タイプを拡張し、1 つは ATImage タイプを拡張します。最近、Plone 4.2 から Plone 4.3.2 にアップグレードしました。Blob ストレージをまったく使用していないことがわかりました。Data.fs が非常に大きいのも不思議ではありません。そのため、これらのカスタム タイプを移行しようとしています。

私は、この例で説明されているすべての手順と、pypi からの製品のメモ、これらの Plone の手順に従い、archetypes.schemaextender の pypi ページの例を使用しました (申し訳ありませんが、私はまだ初心者なので、評判が許しません)。私は2つ以上のリンクを投稿します)。

最後に、FileField を BlobField に変更して ATFile 型を拡張する拡張スクリプトを作成しました。新しいアイテムに効果があるようです。新しい CustomFileType を追加すると、ファイルが BLOB にアップロードされているように見え、新しいアップロード フィールドが表示されます (どちらを使用しているかを簡単に確認できるように、説明を変更しました)。

しかし、既存のすべてのコンテンツ アイテムを移行してバイナリ ファイルを BLOB に移動する際に問題が発生しています。一般的な migrate() スクリプトを試した後、上記のリソースで提案されているように、独自の移行とウォーカーを作成しました。とはいえ、何もしていないようです。マージを試行する各アイテムの結果を出力すると、アイテムごとに次のように返されます。

DEBUG ATCT.migration Migrating /site/path/to/custom/file/filename.ext (CustomFile -> Blob)

サイト内のカスタム ファイル タイプに移動すると、通常はファイルへのリンクが表示されますが、空です。次に編集に行くと、そこにファイルがないかのように扱います。確認として、エクステンダーを無効にして再起動し、カスタム ファイルをリロードしました。ファイルは今そこにありました。したがって、私が実行しているスクリプトは、そのファイルを現在あるべき場所に移動していないようです。

シンプルなものが欠けているように感じます。それはすぐそこにありますが、見つけられないようです。これはすべて私が行って学ぶことであり、私の頭を少し超えているので、誰かが私を簡単に正してくれることを願っています.

追加情報を提供する必要がある場合は、コメントを残してください。必要なものを提供しようとします。

アップデート Red Turtle オブジェクトを例として使用して、keul の提案に従ってカスタム型を移行しました。タイプ自体内でファイルを blob に移行することはまだできませんでした。そこで、別のアプローチを試みました。CustomFile タイプを模倣した新しいカスタム タイプ「CustomBlob」を作成し、この新しい BLOB タイプのみを BLOB 対応に拡張しました。次に、CustomFiles を CustomBlob に移行し、完全にクリアして再構築し、zeo をパックしました。移行はほとんどの部分で機能しているように見え、ブロブストレージは予想された量だけ増加し、新しいタイプは機能しました。ただし、Data.fs のサイズは小さくなりませんでした。Data.fs に格納されていたバイナリ ファイルは、移行中に削除されると思っていたでしょう。私はこれを間違って理解していますか?これらのファイルを削除して、Data.fs のサイズが適切に小さくなるようにするにはどうすればよいですか?

4

1 に答える 1

1

これが最善の解決策かどうかはわかりませんが、これを機能させる方法を次に示します。

各タイプに対応する一時的なコンテンツ タイプを作成しました (CustomImage の場合は CustomImageBlob を作成しました)。新しい型をブロブ対応のみにし、すべての型をそれらの並列に移行しました。次に、元の型のエクステンダーを有効にして BLOB 対応にし、元の型に移行しました。少し冗長で時間がかかりますが、それ自体に移行するときに、ファイルを BLOB に移行することができませんでした。

他の誰かを助ける場合、または誰かがより良い解決策を見つけることを奨励する場合に備えて、これまでのところ最良の答えとしてこれを提供します. ヒントkeulをありがとう、それは間違いなく私がこの解決策にたどり着くのを助けました.

于 2014-07-09T14:53:21.583 に答える