web-dev-qa-db-ja.com

「作成」および「変更」の日付フィールドを移行するにはどうすればよいですか?

これをテストするための移行スクリプトを作成しました。

これは私が使用したコードです。

id: article_csv_import
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags: null
migration_group: Import articles
label: 'Import articles'
source:
  plugin: csv
  path: 'modules/custom/sigtarp_migrate/data/articles.csv'
  header_row_count: 1
  ids:
    - id
process:
  nid: id
  title: title
  body/format:
    plugin: default_value
    default_value: full_html
  body/value: body
  changed:
    plugin: callback
    source: update
    callable: strtotime
    created: date
  created:
    plugin: callback
    source: update
    callable: strtotime
    created: DateCreated
  status: Status
  type:
    plugin: default_value
    default_value: article
destination:
  plugin: 'entity:node'
migration_dependencies:
  required: {  }

移行スクリプトを実行すると、ChangedCreatedフィールドが入力されます。

screenshot

screenshot

これは、移行に使用されるCSVファイルの内容です。

screenshot

なぜ日付がずれているのですか?どうすれば修正できますか?

1
jthill_24

作成および変更された日付の場合、それらは保存されます field_date'sとは異なります 。これらをUnixの世界時に変換する必要があります。

  changed:
    plugin: format_date
    source: update
    from_format: 'm/d/Y'
    to_format: 'U'
    from_timezone: 'UTC'
    to_timezone: 'UTC'
  created:
    plugin: format_date
    source: DateCreated
    from_format: 'm/d/Y'
    to_format: 'U'
    from_timezone: 'UTC'
    to_timezone: 'UTC'
2
No Sssweat