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:
- field.field.node.page.body
- 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_storyline
- field.field.node.page.field_summary
- image.style.thumbnail
- node.type.page
module:
- file
- image
- metatag
- paragraphs
- path
@ -39,6 +44,21 @@ content:
third_party_settings: { }
type: entity_reference_paragraphs
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:
weight: 6
settings: { }

View file

@ -3,11 +3,15 @@ langcode: en
status: true
dependencies:
config:
- field.field.user.user.field_bio
- field.field.user.user.field_gpg_public_key
- field.field.user.user.user_picture
- image.style.thumbnail
module:
- file
- image
- path
- text
- user
_core:
default_config_hash: cAoTuTfmGrGB_89qPV_cTRlA7NXOWtLCLePKVX4SO3A
@ -19,12 +23,34 @@ content:
account:
weight: -10
region: content
settings: { }
third_party_settings: { }
contact:
weight: 5
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:
weight: 0
region: content
settings: { }
third_party_settings: { }
path:
type: path
weight: 30
@ -34,6 +60,8 @@ content:
timezone:
weight: 6
region: content
settings: { }
third_party_settings: { }
user_picture:
type: image_image
settings:

View file

@ -5,11 +5,16 @@ dependencies:
config:
- field.field.node.page.body
- 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_storyline
- field.field.node.page.field_summary
- node.type.page
module:
- ds
- file
- image
- user
third_party_settings:
ds:
@ -34,10 +39,28 @@ id: node.page.default
targetEntityType: node
bundle: page
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:
body: true
field_body_paragraph: true
field_meta_tags: true
field_storyline: true
field_summary: true
links: true

View file

@ -3,10 +3,14 @@ langcode: en
status: true
dependencies:
config:
- field.field.user.user.field_bio
- field.field.user.user.field_gpg_public_key
- field.field.user.user.user_picture
- image.style.thumbnail
module:
- file
- image
- text
- user
_core:
default_config_hash: '-spcniWjm5Ez6YM3ccxk3ocvsn52jkdaGEgp0xzPYU8'
@ -15,6 +19,21 @@ targetEntityType: user
bundle: user
mode: default
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:
type: image
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:
uri_scheme: public
default_image:
uuid: null
uuid: ''
alt: ''
title: ''
width: null
@ -25,7 +25,7 @@ settings:
display_default: false
module: image
locked: false
cardinality: 1
cardinality: -1
translatable: true
indexes:
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

@ -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

@ -35,6 +35,27 @@ process:
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
field_file:
-
plugin: iterator
source: field_file
process:
target_id:
plugin: migration_lookup
source: fid
status: status
created: created
changed: changed

View file

@ -15,6 +15,7 @@ process:
status: status
timezone: timezone
init: init
field_bio: field_bio
roles:
-
plugin: static_map
@ -30,3 +31,29 @@ process:
plugin: role_generate
entity_type: user_role
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 !== '');
}
}