Adds migration configs.

This commit is contained in:
2022-02-15 18:44:32 +00:00
parent c6f921dd53
commit 58b35e5fa6
7 changed files with 555 additions and 0 deletions
@@ -0,0 +1,95 @@
# Migration configuration for importing basic pages.
id: cdesai_basic_pages
label: Import Basic Pages from CSV
migration_group: CDESAI
source:
# The custom CSV source plugin will fetch the source path from configs.
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: 'cdesai_migrate_csv'
source_config_key: cdesai_migrate_basic_pages_source
delimiter: ','
enclosure: '"'
header_offset: 0
ids:
- page
process:
langcode: en
moderation_state: draft
title: title
uid:
plugin: default_value
default_value: 1
field_content/target_id:
# Skips a row if skip_migration property is set to TRUE.
-
plugin: skip_on_value
equals: true
source: skip_migration
value: 'TRUE'
method: row
-
plugin: migration_lookup
migration: cdesai_paragraph_parents
no_stub: true
source: page
-
plugin: extract
index:
- '0'
field_content/target_revision_id:
-
plugin: migration_lookup
migration: cdesai_paragraph_parents
no_stub: true
source: page
-
plugin: extract
index:
- 1
field_category:
# Do not process further if the category value is empty.
-
plugin: skip_on_value
equals: true
source: category
value: ''
method: process
# The plugin looks up for an exiting term based on the value_key property.
# If no matching term is found, it creates one on the fly.
-
plugin: entity_generate
source: category
entity_type: taxonomy_term
bundle_key: vid
bundle: category
value_key: name
ignore_case: true
field_legacy_url: legacy_url
type:
plugin: default_value
default_value: basic_page
destination:
plugin: 'entity:node'
# make sure these migration execute before running current migration
migration_dependencies:
required:
- cdesai_paragraphs
- cdesai_paragraph_parents
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate
@@ -0,0 +1,60 @@
# Migration configuration for attaching paragraphs to parent paragraphs (row).
id: cdesai_paragraph_parents
label: 'Parent (Row) Paragraphs'
migration_group: CDESAI
source:
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: cdesai_paragraph_migrate_source
process:
langcode: en
field_bundles/target_id:
# Skips a row if skip_migration property is set to TRUE.
-
plugin: skip_on_value
equals: true
source: skip_migration
value: 'TRUE'
method: row
# Skips a row if scrapped property is set to FALSE.
-
plugin: skip_on_value
equals: true
source: scrapped
value: 'FALSE'
method: row
-
plugin: migration_lookup
migration: cdesai_paragraphs
no_stub: true
source: page
-
plugin: extract
index:
- '0'
field_bundles/target_revision_id:
-
plugin: migration_lookup
migration: cdesai_paragraphs
no_stub: true
source: page
-
plugin: extract
index:
- '1'
destination:
plugin: 'entity_reference_revisions:paragraph'
default_bundle: row
# make sure these migration execute before running current migration
migration_dependencies:
required:
- cdesai_paragraphs
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate
@@ -0,0 +1,45 @@
# Migration configuration for importing content paragraphs.
id: cdesai_paragraphs
label: Import Content Paragraphs from Text File Archive
migration_group: CDESAI
source:
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: cdesai_paragraph_migrate_source
process:
langcode: en
field_body/value:
# Skips a row if skip_migration property is set to TRUE.
-
plugin: skip_on_value
equals: true
source: skip_migration
value: 'TRUE'
method: row
# Skips a row if scrapped property is set to FALSE.
-
plugin: skip_on_value
equals: true
source: scrapped
value: 'FALSE'
method: row
# Uses the custom process plugin to extract paragraph contents from a text file.
-
plugin: extract_file_contents
source: content_file
field_body/format:
plugin: default_value
default_value: rich_text
destination:
plugin: 'entity_reference_revisions:paragraph'
default_bundle: basic
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate
@@ -0,0 +1,145 @@
# Migration configuration for importing profile pages.
id: cdesai_profile_pages
label: Import Profile Pages from CSV
migration_group: CDESAI
source:
# The custom CSV source plugin will fetch the source path from configs.
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: 'cdesai_migrate_csv'
source_config_key: cdesai_migrate_profile_pages_source
delimiter: ','
enclosure: '"'
header_offset: 0
ids:
- page
process:
langcode: en
moderation_state: draft
title: title
field_legacy_url: legacy_url
field_year_birth: year_birth
field_year_death: year_death
uid:
plugin: default_value
default_value: 1
body/value:
# Skips a row if skip_migration property is set to TRUE.
-
plugin: skip_on_value
equals: true
source: skip_migration
value: 'TRUE'
method: row
# Skips a row if scrapped property is set to FALSE.
-
plugin: skip_on_value
equals: true
source: scrapped
value: 'FALSE'
method: row
-
plugin: migration_lookup
migration: cdesai_paragraphs
no_stub: true
source: page
-
plugin: extract_cdesai_migrate_paragraph
field_body/format:
plugin: default_value
default_value: rich_text
field_position:
# Do not process further if the position value is empty.
-
plugin: skip_on_value
equals: true
source: position
value: ''
method: process
# The plugin looks up for an exiting term based on the value_key property.
# If no matching term is found, it creates one on the fly.
-
plugin: entity_generate
source: position
entity_type: taxonomy_term
bundle_key: vid
bundle: position
value_key: name
ignore_case: true
field_agency:
# Do not process further if the position value is empty.
-
plugin: skip_on_value
equals: true
source: agency
value: ''
method: process
# The plugin looks up for an exiting term based on the value_key property.
# If no matching term is found, it creates one on the fly.
-
plugin: entity_generate
source: agency
entity_type: taxonomy_term
bundle_key: vid
bundle: agency
value_key: name
ignore_case: true
field_years_in_office:
-
plugin: skip_on_empty
source: years_in_office
method: process
message: 'Row does not contain years_in_office.'
-
plugin: explode
delimiter: ','
-
plugin: callback
callable: trim
field_media/target_id:
# Skips a row if has_images property is set to FALSE.
-
plugin: skip_on_value
equals: true
source: has_images
value: 'FALSE'
method: row
-
plugin: skip_on_empty
method: row
message: 'Cannot import image file with an empty url.'
-
plugin: migration_lookup
migration: cdesai_profile_pages_media_items
source: page
type:
plugin: default_value
default_value: profile
destination:
plugin: 'entity:node'
# make sure these migration execute before running current migration
migration_dependencies:
required:
- cdesai_profile_pages_media_items
- cdesai_basic_pages
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate
@@ -0,0 +1,73 @@
# Migration configuration for importing image files.
id: cdesai_profile_pages_image_files
label: Import Profile Page Files
migration_group: CDESAI_MEDIA
source:
# The custom CSV source plugin will fetch the source path from configs.
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: 'cdesai_migrate_csv'
source_config_key: cdesai_migrate_profile_pages_source
delimiter: ','
enclosure: '"'
header_offset: 0
constants:
DRUPAL_FILE_DIRECTORY: 'public://images/profile/'
ids:
- page
process:
uid:
plugin: default_value
default_value: 1
pseudo_destination_filename:
# Skips a row if has_images property is set to FALSE.
-
plugin: skip_on_value
equals: true
source: has_images
value: 'FALSE'
method: row
-
plugin: skip_on_empty
method: row
message: 'Cannot import image file with an empty url.'
-
plugin: callback
callable: basename
source: image_url
pseudo_destination_path:
-
plugin: concat
source:
- constants/DRUPAL_FILE_DIRECTORY
- '@pseudo_destination_filename'
uri:
-
plugin: skip_on_empty
method: process
source: image_url
-
plugin: file_copy
source:
- image_url
- '@pseudo_destination_path'
file_exists: rename
move: false
destination:
plugin: 'entity:file'
# make sure these migration execute before running current migration
migration_dependencies: null
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate
@@ -0,0 +1,72 @@
# Migration configuration for creating media items.
id: cdesai_profile_pages_media_items
label: Import Profile Page Media
migration_group: CDESAI_MEDIA
source:
# The custom CSV source plugin will fetch the source path from configs.
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: 'cdesai_migrate_csv'
source_config_key: cdesai_migrate_profile_pages_source
delimiter: ','
enclosure: '"'
header_offset: 0
ids:
- page
process:
pseudo_destination_filename:
# Skips a row if has_images property is set to FALSE.
-
plugin: skip_on_value
equals: true
source: has_images
value: 'FALSE'
method: row
-
plugin: skip_on_empty
method: row
message: 'Cannot import image file with an empty url.'
-
plugin: callback
callable: basename
source: image_url
name: '@pseudo_destination_filename'
field_media_image/target_id:
plugin: migration_lookup
migration: cdesai_profile_pages_image_files
source: page
field_media_image/alt: title
thumbnail/target_id:
plugin: migration_lookup
migration: cdesai_profile_pages_image_files
source: page
thumbnail/alt: title
uid:
plugin: default_value
default_value: 1
langcode: en
destination:
plugin: 'entity:media'
default_bundle: image
# make sure these migration execute before running current migration
migration_dependencies:
required:
- cdesai_profile_pages_image_files
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate
@@ -0,0 +1,65 @@
# Migration configuration for generating redirects from legacy url to Drupal nodes.
id: cdesai_migrate_page_redirects
label: 'Legacy Page Redirects'
migration_group: CDESAI
source:
# Upload source files at /admin/config/development/cdesai/migrate.
plugin: cdesai_paragraph_migrate_source
process:
language:
plugin: default_value
source: language
default_value: und
uid:
plugin: default_value
default_value: 1
status_code:
plugin: default_value
default_value: 301
redirect_source/path:
# Skips a row if skip_migration property is set to TRUE.
-
plugin: skip_on_value
equals: true
source: skip_migration
value: 'TRUE'
method: row
# Skips a row if legacy_url property is EMPTY.
-
plugin: skip_on_value
equals: true
source: legacy_url
value: ''
method: row
-
plugin: substr
source: legacy_url
start: 1
redirect_redirect/title: ''
redirect_redirect/uri:
# Uses the custom process plugin to extract paragraph contents from a text file.
-
plugin: generate_redirect_uri
source: legacy_url
destination:
plugin: entity:redirect
# make sure these migration execute before running current migration
migration_dependencies:
required:
- cdesai_articles
- cdesai_basic_pages
# use forced module dependency so uninstall/reinstall works properly
dependencies:
enforced:
module:
- cdesai_migrate