2つの関連ノード(Organic GroupとOG group content)Migrateモジュールを使用して2つのCSVファイルからですが、適切なCSV移行クラスの例またはモジュールが見つかりません。私はDrupal 7.を使用します。
OG Group
|
|--OG group content
ファイル形式:
(a) OG Group file
=============================================
gid | group_title | group_body | group_admin
(b) OG group content
==================================
nid | gid | node_title | node_body
関係:
{a.gid} 1..(one-to-many)..* {b.gid}
{a.group_admin} *..(many-to-one)..1 {users.uid} // group admin is one of existing users uid that should have the OG group administration membership rights
移行モジュールのサンプルCSV移行クラスはどこにありますか?
Migrate OG はD6専用です Migrate Extras にはD7のOGのクラスが含まれていますが、このシナリオの例が見つかりませんでした。
わかりましたので、以前に移行を使用したことがないと想定しています。背景を読んでみたい場合は、デンバーのDrupalConで発表するプレゼンテーションのスライドをご覧ください。 http://denver2012.drupal.org/sites/default/files/slides/Migrate_0 .pdf いくつかの概念を理解するのに役立ちます。
指摘すべき重要なことの1つは、2つの移行が必要になることです。
CSVファイルは、実際にはソースとして本当に使いやすいものです。 Migrateドキュメントでその例を見ることができます: http://drupal.org/node/1152158
あなたの場合、(a)のソースを次のように設定できます:
// The definition of the columns. Keys are integers, values are an
// array of field name then description.
$columns = array(
0 => array('gid', 'Id'),
1 => array('group_title', 'Title'),
2 => array('group_body', 'Body'),
3 => array('group_admin', 'Admin'),
);
// Instantiate the class using the path to the CSV file and the columns.
$this->source = new MigrateSourceCSV('path/to/a.csv', $columns);
マップを設定するときは、ソースIDを格納するフィールドを作成する必要があるため、ソースについても知っておく必要があります。gidは基本的にnidなので、そのソースのスキーマ定義をだまして使用することができます。
$this->map = new MigrateSQLMap($this->machineName,
MigrateDestinationNode::getKeySchema(),
MigrateDestinationNode::getKeySchema()
);