Merge branch 'migration-part-2' into 'master'

Migration part 2

See merge request agaric/sites/agaric-com!6
This commit is contained in:
mlncn 2018-09-06 04:28:14 +00:00
commit 09b529e8be
20 changed files with 583 additions and 15 deletions

View file

@ -5,11 +5,16 @@ dependencies:
config: config:
- field.field.node.page.body - field.field.node.page.body
- field.field.node.page.field_body_paragraph - field.field.node.page.field_body_paragraph
- field.field.node.page.field_file
- field.field.node.page.field_image
- field.field.node.page.field_meta_tags - field.field.node.page.field_meta_tags
- field.field.node.page.field_storyline - field.field.node.page.field_storyline
- field.field.node.page.field_summary - field.field.node.page.field_summary
- image.style.thumbnail
- node.type.page - node.type.page
module: module:
- file
- image
- metatag - metatag
- paragraphs - paragraphs
- path - path
@ -39,6 +44,21 @@ content:
third_party_settings: { } third_party_settings: { }
type: entity_reference_paragraphs type: entity_reference_paragraphs
region: content region: content
field_file:
weight: 27
settings:
progress_indicator: throbber
third_party_settings: { }
type: file_generic
region: content
field_image:
weight: 26
settings:
progress_indicator: throbber
preview_image_style: thumbnail
third_party_settings: { }
type: image_image
region: content
field_meta_tags: field_meta_tags:
weight: 6 weight: 6
settings: { } settings: { }

View file

@ -3,11 +3,15 @@ langcode: en
status: true status: true
dependencies: dependencies:
config: config:
- field.field.user.user.field_bio
- field.field.user.user.field_gpg_public_key
- field.field.user.user.user_picture - field.field.user.user.user_picture
- image.style.thumbnail - image.style.thumbnail
module: module:
- file
- image - image
- path - path
- text
- user - user
_core: _core:
default_config_hash: cAoTuTfmGrGB_89qPV_cTRlA7NXOWtLCLePKVX4SO3A default_config_hash: cAoTuTfmGrGB_89qPV_cTRlA7NXOWtLCLePKVX4SO3A
@ -19,12 +23,34 @@ content:
account: account:
weight: -10 weight: -10
region: content region: content
settings: { }
third_party_settings: { }
contact: contact:
weight: 5 weight: 5
region: content region: content
settings: { }
third_party_settings: { }
field_bio:
weight: 32
settings:
rows: 9
summary_rows: 3
placeholder: ''
third_party_settings: { }
type: text_textarea_with_summary
region: content
field_gpg_public_key:
weight: 31
settings:
progress_indicator: throbber
third_party_settings: { }
type: file_generic
region: content
language: language:
weight: 0 weight: 0
region: content region: content
settings: { }
third_party_settings: { }
path: path:
type: path type: path
weight: 30 weight: 30
@ -34,6 +60,8 @@ content:
timezone: timezone:
weight: 6 weight: 6
region: content region: content
settings: { }
third_party_settings: { }
user_picture: user_picture:
type: image_image type: image_image
settings: settings:

View file

@ -5,11 +5,16 @@ dependencies:
config: config:
- field.field.node.page.body - field.field.node.page.body
- field.field.node.page.field_body_paragraph - field.field.node.page.field_body_paragraph
- field.field.node.page.field_file
- field.field.node.page.field_image
- field.field.node.page.field_meta_tags - field.field.node.page.field_meta_tags
- field.field.node.page.field_storyline
- field.field.node.page.field_summary - field.field.node.page.field_summary
- node.type.page - node.type.page
module: module:
- ds - ds
- file
- image
- user - user
third_party_settings: third_party_settings:
ds: ds:
@ -34,10 +39,28 @@ id: node.page.default
targetEntityType: node targetEntityType: node
bundle: page bundle: page
mode: default mode: default
content: { } content:
field_file:
weight: 2
label: above
settings:
use_description_as_link_text: true
third_party_settings: { }
type: file_default
region: content
field_image:
weight: 1
label: above
settings:
image_style: ''
image_link: ''
third_party_settings: { }
type: image
region: content
hidden: hidden:
body: true body: true
field_body_paragraph: true field_body_paragraph: true
field_meta_tags: true field_meta_tags: true
field_storyline: true
field_summary: true field_summary: true
links: true links: true

View file

@ -3,10 +3,14 @@ langcode: en
status: true status: true
dependencies: dependencies:
config: config:
- field.field.user.user.field_bio
- field.field.user.user.field_gpg_public_key
- field.field.user.user.user_picture - field.field.user.user.user_picture
- image.style.thumbnail - image.style.thumbnail
module: module:
- file
- image - image
- text
- user - user
_core: _core:
default_config_hash: '-spcniWjm5Ez6YM3ccxk3ocvsn52jkdaGEgp0xzPYU8' default_config_hash: '-spcniWjm5Ez6YM3ccxk3ocvsn52jkdaGEgp0xzPYU8'
@ -15,6 +19,21 @@ targetEntityType: user
bundle: user bundle: user
mode: default mode: default
content: content:
field_bio:
weight: 2
label: above
settings: { }
third_party_settings: { }
type: text_default
region: content
field_gpg_public_key:
weight: 1
label: above
settings:
use_description_as_link_text: true
third_party_settings: { }
type: file_default
region: content
user_picture: user_picture:
type: image type: image
weight: 0 weight: 0

View file

@ -0,0 +1,27 @@
uuid: f2978e92-efe9-45a5-b412-5e3e5ac98681
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_file
- node.type.page
module:
- file
id: node.page.field_file
field_name: field_file
entity_type: node
bundle: page
label: file
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'txt pdf svg rtf odt odp ppt'
max_filesize: ''
description_field: false
handler: 'default:file'
handler_settings: { }
field_type: file

View file

@ -0,0 +1,38 @@
uuid: 16782cd7-a9f3-4cf1-8e5b-eba74b6f239c
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_image
- node.type.page
module:
- image
id: node.page.field_image
field_name: field_image
entity_type: node
bundle: page
label: Image
description: ''
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings:
file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'png gif jpg jpeg'
max_filesize: ''
max_resolution: ''
min_resolution: ''
alt_field: true
alt_field_required: true
title_field: false
title_field_required: false
default_image:
uuid: ''
alt: ''
title: ''
width: null
height: null
handler: 'default:file'
handler_settings: { }
field_type: image

View file

@ -0,0 +1,21 @@
langcode: en
status: true
dependencies:
config:
- field.storage.user.field_bio
module:
- text
- user
id: user.user.field_bio
field_name: field_bio
entity_type: user
bundle: user
label: Bio
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
display_summary: false
field_type: text_with_summary

View file

@ -0,0 +1,26 @@
langcode: en
status: true
dependencies:
config:
- field.storage.user.field_gpg_public_key
module:
- file
- user
id: user.user.field_gpg_public_key
field_name: field_gpg_public_key
entity_type: user
bundle: user
label: 'GPG public key'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
file_directory: ''
file_extensions: asc
max_filesize: ''
description_field: false
handler: 'default:file'
handler_settings: { }
field_type: file

View file

@ -0,0 +1,23 @@
uuid: 84ea971d-b192-4165-8178-ebf05f57662b
langcode: en
status: true
dependencies:
module:
- file
- node
id: node.field_file
field_name: field_file
entity_type: node
type: file
settings:
display_field: true
display_default: false
uri_scheme: public
target_type: file
module: file
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -15,7 +15,7 @@ type: image
settings: settings:
uri_scheme: public uri_scheme: public
default_image: default_image:
uuid: null uuid: ''
alt: '' alt: ''
title: '' title: ''
width: null width: null
@ -25,7 +25,7 @@ settings:
display_default: false display_default: false
module: image module: image
locked: false locked: false
cardinality: 1 cardinality: -1
translatable: true translatable: true
indexes: indexes:
target_id: target_id:

View file

@ -0,0 +1,18 @@
langcode: en
status: true
dependencies:
module:
- text
- user
id: user.field_bio
field_name: field_bio
entity_type: user
type: text_with_summary
settings: { }
module: text
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -0,0 +1,22 @@
langcode: en
status: true
dependencies:
module:
- file
- user
id: user.field_gpg_public_key
field_name: field_gpg_public_key
entity_type: user
type: file
settings:
display_field: false
display_default: false
uri_scheme: public
target_type: file
module: file
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -8,4 +8,4 @@ shared_configuration:
dependencies: dependencies:
enforced: enforced:
module: module:
- agaric_migration - agaric_migration

View file

@ -0,0 +1,62 @@
id: agaric_blog
migration_group: agaric
label: Agaric Blog
source:
plugin: d7_node
node_type: blog
destination:
plugin: entity:node
process:
type:
plugin: default_value
default_value: blog
langcode:
plugin: default_value
source: language
default_value: "und"
title: title
uid:
-
plugin: migration_lookup
migration: agaric_user
source: node_uid
no_stub: true
-
plugin: skip_on_empty
method: row
paragraph_body:
plugin: migration
migration: agaric_blog_paragraph
source: nid
field_body_paragraph:
plugin: iterator
source:
- '@paragraph_body'
process:
target_id: '0'
target_revision_id: '1'
field_image:
-
plugin: iterator
source: field_image
process:
target_id:
plugin: migration_lookup
migration: agaric_file
source: fid
alt: alt
title: title
height: height
width: width
status: status
created: created
changed: changed
promote: promote
sticky: sticky
revision_uid: revision_uid
revision_log: log
revision_timestamp: timestamp
migration_dependencies:
required:
- agaric_user
- agaric_blog_paragraph

View file

@ -0,0 +1,30 @@
id: agaric_blog_paragraph
migration_group: agaric
label: Blog Body paragraph
source:
plugin: d7_node
node_type: blog
process:
uid:
-
plugin: migration_lookup
migration: agaric_user
source: node_uid
no_stub: true
-
plugin: skip_on_empty
method: row
status: status
created: created
parent_type: "node"
field_text: body
destination:
plugin: 'entity_reference_revisions:paragraph'
default_bundle: text
dependencies:
enforced:
module:
- paragraphs
migration_dependencies:
required:
- agaric_user

View file

@ -0,0 +1,74 @@
id: agaric_comment
migration_group: agaric
label: Agaric Comments
source:
plugin: d7_comment
constants:
entity_type: node
comment_type: comment
default_pid: 0
process:
# All the threads are going to be flatten.
pid: 'constants/default_pid'
entity_id:
-
plugin: migration_lookup
migration:
- agaric_page
- agaric_blog
source_ids:
agaric_page:
- nid
agaric_blog:
- nid
no_stub: true
-
plugin: skip_on_empty
method: row
entity_type: 'constants/entity_type'
comment_type: 'constants/comment_type'
field_name: '@comment_type'
subject: subject
uid:
-
plugin: migration_lookup_with_zero
migration: agaric_user
source: uid
no_stub: true
-
plugin: default_value
default_value: 0
name: name
mail: mail
homepage: homepage
hostname: hostname
created: created
changed: changed
status: status
thread: thread
comment_body/format:
-
plugin: extract
source: comment_body
index:
- 0
- format
-
plugin: static_map
map:
filtered_html: 'basic_html'
bypass: TRUE
comment_body/value:
-
plugin: extract
source: comment_body
index:
- 0
- value
destination:
plugin: entity:comment
default_bundle: comment
migration_dependencies:
required:
- agaric_blog
- agaric_page

View file

@ -0,0 +1,45 @@
id: agaric_file
migration_group: agaric
label: Public files
source:
plugin: d7_file
scheme: public
process:
filename: filename
source_full_path:
-
plugin: concat
delimiter: /
source:
- filepath
-
plugin: str_replace
search: 'sites/default/files/'
# The old files must be located at this path:
replace: 'sites/default/import/'
-
plugin: urlencode
uri:
plugin: file_copy
source:
- '@source_full_path'
- uri
filemime: filemime
status: status
created: timestamp
changed: timestamp
uid:
-
plugin: migration_lookup
migration: agaric_user
source: uid
no_stub: true
-
# If the user id does not exists then migrate it as anonymous.
plugin: default_value
default_value: 0
destination:
plugin: entity:file
migration_dependencies:
required:
- agaric_user

View file

@ -16,14 +16,14 @@ process:
default_value: "und" default_value: "und"
title: title title: title
uid: uid:
- -
plugin: migration_lookup plugin: migration_lookup
migration: agaric_user migration: agaric_user
source: node_uid source: node_uid
no_stub: true no_stub: true
- -
plugin: skip_on_empty plugin: skip_on_empty
method: row method: row
paragraph_body: paragraph_body:
plugin: migration plugin: migration
migration: agaric_page_paragraph migration: agaric_page_paragraph
@ -31,10 +31,31 @@ process:
field_body_paragraph: field_body_paragraph:
plugin: iterator plugin: iterator
source: source:
- '@paragraph_body' - '@paragraph_body'
process: process:
target_id: '0' target_id: '0'
target_revision_id: '1' target_revision_id: '1'
field_image:
-
plugin: iterator
source: field_image
process:
target_id:
plugin: migration_lookup
migration: agaric_file
source: fid
alt: alt
title: title
height: height
width: width
field_file:
-
plugin: iterator
source: field_file
process:
target_id:
plugin: migration_lookup
source: fid
status: status status: status
created: created created: created
changed: changed changed: changed
@ -45,5 +66,5 @@ process:
revision_timestamp: timestamp revision_timestamp: timestamp
migration_dependencies: migration_dependencies:
required: required:
- agaric_user - agaric_user
- agaric_page_paragraph - agaric_page_paragraph

View file

@ -15,6 +15,7 @@ process:
status: status status: status
timezone: timezone timezone: timezone
init: init init: init
field_bio: field_bio
roles: roles:
- -
plugin: static_map plugin: static_map
@ -30,3 +31,29 @@ process:
plugin: role_generate plugin: role_generate
entity_type: user_role entity_type: user_role
value_key: id value_key: id
field_gpg_public_key/target_id:
-
plugin: extract
source: field_gpg_public_key
default: ''
index:
- 0
- fid
-
plugin: skip_on_empty
method: process
-
plugin: migration_lookup
migration: agaric_file
user_picture:
-
plugin: default_value
source: picture
default_value: null
-
plugin: migration_lookup
migration: agaric_file
migration_dependencies:
optional:
- agaric_file

View file

@ -0,0 +1,44 @@
<?php
namespace Drupal\agaric_migration\Plugin\migrate\process;
use Drupal\migrate\MigrateSkipProcessException;
use Drupal\migrate\Plugin\migrate\process\MigrationLookup;
/**
* Looks up the value of a property based on a previous migration.
*
* This plugin just alters the MigrationLookup::skipOnEmpty to consider the
* number zero as a valid ID.
*
* @MigrateProcessPlugin(
* id = "migration_lookup_with_zero"
* )
*/
class MigrationLookupWithZero extends MigrationLookup {
/**
* {@inheritdoc}
*/
protected function skipOnEmpty(array $value) {
if (!array_filter($value, [$this, 'isNotEmpty'])) {
throw new MigrateSkipProcessException();
}
}
/**
* Determines if the value is not empty.
*
* The only values considered empty are: NULL, FALSE and an empty string.
*
* @param string $value
* The value to test if is empty.
*
* @return bool
* Return true if the value is not empty.
*/
protected function isNotEmpty($value) {
return ($value !== NULL && $value !== FALSE && $value !== '');
}
}