Migrate Source CSVと大きなCSVファイルを使用して、SharePointからDrupal 8にコンテンツをインポートしています。 id、title、body、dateのマッピングに成功しました。しかし、パスエイリアスをマップできませんか? Drupal 7では、フィードモジュールがこれを簡単にマッピングしました。 Drupal 8でこれを行う方法を知っている人はいますか?
これは私のymlファイルからのスニペットです:
process:
id: id
nid: nid
title: title
alias: path
destination:
plugin: entity:node
私のcsvファイル
"id","nid","title","body","path","date"
"1","1","title1","bodytext","content/12/mypath","2014-08-12"
同様の質問への答えを見つけようとしているときに試してみました。以下にその外観を示します。
source:
...
constants:
slash: '/'
process:
...
// This parameter should be "path" and not "alias".
path:
plugin: concat
source:
- constants/slash
- path
注:データを初めてインポートするときにパスエイリアスがインポートされます。ただし、drush migrate-import MIGRATION-ID --update
、パスエイリアスは更新されません。
@Jigarの答えは近いですが、完全ではありません。これが私が最終的に理解したことです。パスだけでなく、パス/エイリアスである必要があります。また、pathautoモジュールがインストールされている場合は、パターンに基づいてパスが作成されます。したがって、パスをcsvからインポートするには、パスautoを最初に無効にする必要があります。これを行うには、path/pathautoのデフォルト値を0に設定します。
source:
...
constants:
slash: '/'
....
process:
...
path/pathauto:
plugin: default_value
default_value: 0 # Disable pathauto
path/alias:
plugin: concat
source:
- constants/slash
- url
私は自分でノードの移行でパスをマッピングしようとしませんでした(コアアップグレードパスはエイリアスを個別に移行します)。 。