web-dev-qa-db-ja.com

古いカスタムCMSからコンテンツを簡単にインポートする方法

私は、古いカスタムビルドのCMSから移行したい企業のためにDrupalサイト(これまでにない)を構築しています)。

それらには多くのコンテンツがあり、コンテンツのレイアウト(フィールド)をほぼ同じに保っています。そしてもちろん、彼らは新しいDrupalサイトにコンテンツを置きたいと思っています。

Drupalデータベースの構造はかなり複雑で、いくつかの単純な挿入クエリがうまくいくとは思えません。私はPythonスクリプトを書いて、 Drupalが設定するほど複雑なDBではありません。

古いコンテンツをDrupalにインポートするにはどのようなオプションがありますか?

5
Dan

「無痛」のデータ移行?からかってるんだろ? :)

移行モジュールを提案する多くの答えがあります。それは確かにオプションですが、私が好きではなかったものです。私は、外部システムからDrupal(時には複数の外部ソースから同時に)へ)へのコンテンツの移行を伴う多数のプロジェクトを実行しました。これには、数百万のコンテンツのプロジェクトも含まれます。カスタムモジュールでのBatch API実装が進むべき道であるという私の死。

2つの移行が同じであることはありません。個々の移行には、「独自の」クリーンアップ、データのサニタイズ/変更などが含まれます。完全に制御する唯一の方法は、完全にカスタムスクリプトを使用することです。汎用ツールを介して簡単な「80%の方法」で妥協しないでください。その後、ツールが処理しない20%に打ちのめされ、何週間も苦労します。

カスタムで行い、エンティティメタデータラッパーを使用して、従来の<->新しいコンテンツIDを別のdbテーブルで追跡します。

また、既存のコンテンツ、マークアップなどを単純に「レガシー」コンテンツタイプに「ダンプ」して、フィールドに移動したり、人生を複雑にしたりせずに、1日と呼ぶこともできます。あなたはクライアントと一緒に座って、彼らが何を望んでいる/必要としているのか、そして彼らが何に満足するのかを正確に理解するべきです。単に「大丈夫」である単純なソリューションは、「素晴らしい」複数月のプロジェクトよりもはるかに優れている場合があります。

5
Yuriy Babenko

Migrate モジュールを使用する必要があります。

移行モジュールは、コンテンツを他のソースからDrupalに移行するための柔軟なフレームワークを提供します(たとえば、Webサイトを別のCMSからDrupalに変換するとき)。すぐに使える、作成のサポートコアDrupalノード、ユーザー、ファイル、用語、コメントなどのオブジェクトが含まれています-他の種類のコンテンツを移行するために簡単に拡張できます。コンテンツは、バンドルされたWebインターフェイスを使用してインポートおよびロールバックされます(UIモジュールの移行)または含まれているDrushコマンド

3
harshal

単純な移行ケースに追加したかっただけです:

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 も柔軟性を高めるのに役立ちます。

3
Darrell Ulm

コンテンツをxmlにエクスポートできる場合、フィードは非常に使いやすくなっています。

1

Migrate Moduleが必要です。学習曲線は少し急ですが、それは私が投げることができるものはすべて処理し、必要に応じてすべてのデータをProfile2フィールドに取り込むことができました。

0
StevenPatz