web-dev-qa-db-ja.com

ソースCSVの移行を使用したパスエイリアスのマッピングまたは移行

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"
1
paulcap1

同様の質問への答えを見つけようとしているときに試してみました。以下にその外観を示します。

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、パスエイリアスは更新されません。

3
Jigarius

@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
3
oli-chowdhury

私は自分でノードの移行でパスをマッピングしようとしませんでした(コアアップグレードパスはエイリアスを個別に移行します)。 。

0
Mike Ryan