私は、古いカスタムビルドのCMSから移行したい企業のためにDrupalサイト(これまでにない)を構築しています)。
それらには多くのコンテンツがあり、コンテンツのレイアウト(フィールド)をほぼ同じに保っています。そしてもちろん、彼らは新しいDrupalサイトにコンテンツを置きたいと思っています。
Drupalデータベースの構造はかなり複雑で、いくつかの単純な挿入クエリがうまくいくとは思えません。私はPythonスクリプトを書いて、 Drupalが設定するほど複雑なDBではありません。
古いコンテンツをDrupalにインポートするにはどのようなオプションがありますか?
「無痛」のデータ移行?からかってるんだろ? :)
移行モジュールを提案する多くの答えがあります。それは確かにオプションですが、私が好きではなかったものです。私は、外部システムからDrupal(時には複数の外部ソースから同時に)へ)へのコンテンツの移行を伴う多数のプロジェクトを実行しました。これには、数百万のコンテンツのプロジェクトも含まれます。カスタムモジュールでのBatch API実装が進むべき道であるという私の死。
2つの移行が同じであることはありません。個々の移行には、「独自の」クリーンアップ、データのサニタイズ/変更などが含まれます。完全に制御する唯一の方法は、完全にカスタムスクリプトを使用することです。汎用ツールを介して簡単な「80%の方法」で妥協しないでください。その後、ツールが処理しない20%に打ちのめされ、何週間も苦労します。
カスタムで行い、エンティティメタデータラッパーを使用して、従来の<->新しいコンテンツIDを別のdbテーブルで追跡します。
また、既存のコンテンツ、マークアップなどを単純に「レガシー」コンテンツタイプに「ダンプ」して、フィールドに移動したり、人生を複雑にしたりせずに、1日と呼ぶこともできます。あなたはクライアントと一緒に座って、彼らが何を望んでいる/必要としているのか、そして彼らが何に満足するのかを正確に理解するべきです。単に「大丈夫」である単純なソリューションは、「素晴らしい」複数月のプロジェクトよりもはるかに優れている場合があります。
Migrate モジュールを使用する必要があります。
移行モジュールは、コンテンツを他のソースからDrupalに移行するための柔軟なフレームワークを提供します(たとえば、Webサイトを別のCMSからDrupalに変換するとき)。すぐに使える、作成のサポートコアDrupalノード、ユーザー、ファイル、用語、コメントなどのオブジェクトが含まれています-他の種類のコンテンツを移行するために簡単に拡張できます。コンテンツは、バンドルされたWebインターフェイスを使用してインポートおよびロールバックされます(UIモジュールの移行)または含まれているDrushコマンド
単純な移行ケースに追加したかっただけです:
Migrateモジュールが最も柔軟性がありますが、単純なCMSデータの場合、フィードモジュールを使用して、最初に元のCMSから何らかの方法でエクスポートした後、XML、CSVなどのデータをインポートできます。参照: https://drupal.org/project/feeds チュートリアル: https://drupal.org/node/622698 および http:// developmentseed .org/blog/2009/dec/15/importing-and-aggregating-stuff-feeds / もちろん、コンテンツタイプとフィールドはすべて新しいDrupal 7に存在する必要があります。インストール。
ただし、CMSデータがかなり複雑な場合は、移行を使用してください。 https://drupal.org/project/migrate および https://drupal.org/project/migrate_extras も柔軟性を高めるのに役立ちます。
コンテンツをxmlにエクスポートできる場合、フィードは非常に使いやすくなっています。
Migrate Moduleが必要です。学習曲線は少し急ですが、それは私が投げることができるものはすべて処理し、必要に応じてすべてのデータをProfile2フィールドに取り込むことができました。