web-dev-qa-db-ja.com

複数の値を含むフィールドと、段落やフィールドコレクションなどのサブフィールドを含む大きなCSVファイルをインポートする最適な方法

古いDrupal 7サイトを Views data export モジュールを使用してエクスポートしました。これを新しいDrupalにインポートする必要があります。 7サイトですが、いくつかのフィールドには複数の値とサブフィールドを持つフィールド(フィールドコレクション)が含まれています。

  • これをインポートする最良の方法は何でしょうか?
  • 移行モジュールを使用して独自のカスタムモジュールを作成する必要がありますか、それともフィードを使用する必要がありますか?
  • また、フィールドコレクションまたは複数の値を持つフィールドにデータをインポートするにはどうすればよいですか?
1

Field Collection Feeds を使用してみてください

フィールドコレクションモジュールのフィード統合を提供します。

2
No Sssweat

これを理解するには、2週間ほどかかりました。ここにあります。アドバイスが必要な場合はコメントしてください。

2万件のレコードをインポートする必要があり、各レコードには、フィールドコレクションや段落で使用されているようなサブ値とともに複数値を持つフィールドがいくつかありました。また、段落をインポートするときに、分類用語をその場で入力する必要があります。

私の新しいDrupal 7サイトでは、来年かそこらで廃止されるため、フィールドコレクションの代わりに段落を使用して次のことを行いました。

  • 古いフィールドと一致するすべてのフィールドを使用して、コンテンツタイプを作成します。
  • サブフィールドと一致するすべての段落を作成し、uが値を制限するとエラーになるので、適切な制限値を設定してください1に。
  • 分類法を設定する
  • 必ずインストールしてください: https://www.drupal.org/sandbox/shaney/2862236 ---データをどのようにフィットさせるかを調整するには、大規模な再コーディングが必要です。完全に完成していないため、コードの多くを変更する必要がありました。
  • フィードインポーター。 Nodeプロセッサとしてプロセッサを選択し、ターゲットとするコンテンツタイプを選択します
  • フィールドのマッピングを開始します。ソース列は、csvにあるものと一致する必要があります。列名からターゲット名までがわかるので、どのような順序でもかまいません。
  • サブフィールドのサブフィールドがある場合、デリミネーターを適切に使用してデータを適切にフォーマットするため、最も難しいのは段落マッピングです。以下は、段落フィールドをマッピングする際のスクリーンショットです。
  • また、20kレコードのファイルを1ファイルあたり1500レコードに分割する必要がありました。インポートが2000レコードを超えるとクラッシュしました。端末コマンド「split -l 15000 myfile.csv」を使用して分割しました。その後、一度に1つずつ実行し、めちゃくちゃにならないように指を交差させます。

enter image description here

段落マッパーを次のように変更する必要がありました。デフォルトでは、マッパーは1つのフィールドしか実行できません。最大5つのフィールドが必要だったので、手動で追加しました。これを行う適切な方法は、フィールドを追加する機能を提供することです。 5つのフィールドのみをマップする必要があるため、これを行うことができませんでした。

enter image description here

インポートが完了すると、次のようになります。

enter image description here

0