移行モジュールを使用して、Drupal7 Web サイトのコンテンツを別の Drupal7 システムに移行したいと考えています。
フィールドを追加してマップする必要があります。drupal のすべてのコンテンツ タイプのフィールドは、 というテーブルに格納されますfield_revision_field_name
。ほとんどのフィールドの値は列にありますfield_name_value
。field_name_value
しかし、いくつかのフィールドは別の構造を持っているので、列が存在するかどうかを確認したい.
テーブルを結合し、ループ内の mysql クエリにフィールドを追加しています。問題は、すべてのテーブル"field_revision_".$typeFields[$i]
(エイリアスは$typeFields[$i]."_table"
) に列があるわけではないことです$typeFields[$i]."_value"
:
for ($i=0; $i < sizeof($typeFields); $i++) {
$query->join(
"field_revision_".$typeFields[$i],
$typeFields[$i]."_table",
"n.nid = ".$typeFields[$i]."_table.entity_id"
);
$query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}
次のようなクエリを実行する前に、これを確認したいと思います。
for ($i=0; $i < sizeof($typeFields); $i++) {
if($typeFields[$i]."_table" has Column $typeFields[$i]."_value"){
$query->join(
"field_revision_".$typeFields[$i],
$typeFields[$i]."_table",
"n.nid = ".$typeFields[$i]."_table.entity_id"
);
$query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}
}