drupal 7 - no code content migration

40
No Code Content Migration Hector Iribarne @hectoriribarne Track: Site Building Level: Intermediate

Upload: hector-iribarne

Post on 16-Jul-2015

556 views

Category:

Software


0 download

TRANSCRIPT

No Code Content Migration

Hector Iribarne @hectoriribarneTrack: Site BuildingLevel: Intermediate

@hectoriribarne

Hector Iribarne (iribarne.com)

Drupal Site Builder & Developer (since 2007)

Broward Drupal co-founder

iribarne on Drupal.org and IRC

Currently working on Contentin and Contentout (D7 sandbox modules)

@hectoriribarne #FLDC15

Prime Focus of Presentation: Contentin module

● The Contentin module is at the core of the “No Code Content Migration” approach for getting content into Drupal without writing any code (leverages the Migrate module)

● The module is targeted for site builders (two-click import):○ One click to dynamically register migrations from a CSV

file (Contentin module at work)○ Second click to import registered migration (Migrate module

at work)

● Contentin sandbox:https://www.drupal.org/sandbox/iribarne/2461615

○ git clone --branch 7.x-1.x http://git.drupal.org/sandbox/iribarne/2461615.git contentin

#FLDC15@hectoriribarne

Main Topics Traditional Migrate module

“Code Approach”

Export Content to CSV w/ Contentout module

No Code Content Migration w/ Contentin module

@hectoriribarne #FLDC15

DB

Simple CSV files[(h)field,

(c)single-value fields]

Site 2Contentin

Site 1Contentout

Traditional “Code Approach”: No Code Content Migration:

Migrate Code

(not covered)

MigrateCode

Hierarchical CSV files

[(h)field:subfield,(c)multi-value fields]

One-click Two-clicks

migr8csv2articlemigr8csv2page

1

2 3

hccc

hccc

Legend:(h) header(c) content

Traditional

Migrate module

“Code Approach”

@hectoriribarne #FLDC15

@hectoriribarne #FLDC15

Simple CSV files[(h)field,

(c)single-value fields]

Traditional “Code Approach” with Migrate module:

MigrateCode

migr8csv2articlemigr8csv2page

1

hccc

Legend:(h) header(c) content

Site 1

@hectoriribarne #FLDC15

Static implementation of hook_migrate_api (migr8csv2page):

@hectoriribarne #FLDC15

Source Mapping of Migration Class (migr8csv2page):

@hectoriribarne #FLDC15

Destination Mapping of Migration Class (migr8csv2page):

Migrate

module

Demo

@hectoriribarne #FLDC15

@hectoriribarne #FLDC15

Let’s get started with setting up the traditional approach:

@hectoriribarne #FLDC15

Set-up the basics from contib for Site1:

● cd sites/all/modules

● mkdir custom

● mkdir contrib

● cd contrib

● drush dl module_filter admin_menu migrate bundle_copy taxonomy_csv devel;drush en -y module_filter admin_menu migrate migrate_ui bundle_copy taxonomy_csv;drush dis -y overlay toolbar

@hectoriribarne #FLDC15

Set-up the basics for custom:

● Create a data directory under the files folder

● Place CSV files article.csv and page.csv in the sites/all/default/files/data directory

● Place custom modules migr8csv2article and migr8csv2page in the sites/all/modules/custom directory and enable the modules

@hectoriribarne #FLDC15

File Structure:

Export Content to CSV

w/ Contentout module

@hectoriribarne #FLDC15

@hectoriribarne #FLDC15

Site 1Contentout

Use Contentout module to create CSV:

Hierarchical CSV files

[(h)field:subfield,(c)multi-value fields]

One-click

2

hccc

Legend:(h) header(c) content

Contentout

Demo

@hectoriribarne #FLDC15

@hectoriribarne #FLDC15

Get the Contentout module from the Drupal sandbox:

● cd sites/all/modules/custom

● git clone --branch 7.x-1.x http://git.drupal.org/sandbox/iribarne/2461613.git contentout

● Enable the Contentout module

● Go to Contentout on the admin menu: Configuration -> Content authoring -> Content automation -> Content out

@hectoriribarne #FLDC15

Content out admin page:

@hectoriribarne #FLDC15

Content out one-click export:

No Code

Content

Migration

@hectoriribarne #FLDC15

#FLDC15

Site 2Contentin

No Code Content Migration:

Hierarchical CSV files

[(h)field:subfield,(c)multi-value fields]

Two-clicks

3

hccc

Legend:(h) header(c) content

Contentin

Demo

@hectoriribarne #FLDC15

@hectoriribarne #FLDC15

Set up the 2nd site for the No Code Content Migration approach:

@hectoriribarne #FLDC15

Set-up the basics from contib for Site2:

● cd sites/all/modules

● mkdir custom

● mkdir contrib

● cd contrib

● drush dl module_filter admin_menu migrate bundle_copy taxonomy_csv devel;drush en -y module_filter admin_menu migrate migrate_ui bundle_copy taxonomy_csv;drush dis -y overlay toolbar

@hectoriribarne #FLDC15

Copy Content Types and Taxonomies:

● Use the Bundle Copy module to copy your content types over from Site1 to Site2

● Use the Taxonomy CSV module to copy your taxonomies over from Site1 to Site2

@hectoriribarne #FLDC15

Get the Contentin module from the Drupal sandbox:

● cd sites/all/modules/custom

● git clone --branch 7.x-1.x http://git.drupal.org/sandbox/iribarne/2461615.git contentin

● Enable the Contentin module

● Go to Contentout on the admin menu: Configuration -> Content authoring -> Content automation -> Content in

@hectoriribarne #FLDC15

Content in admin page:

@hectoriribarne #FLDC15

Content in click to create migrations:

@hectoriribarne #FLDC15

Migrate Dashboard:

@hectoriribarne #FLDC15

Dynamically registered article content type:

@hectoriribarne #FLDC15

Dynamically registered page content type:

@hectoriribarne #FLDC15

Create Content via Migrate module (second click):

@hectoriribarne #FLDC15

Content Created!

@hectoriribarne #FLDC15

The Contentin module supported field type/widgets:

@hectoriribarne #FLDC15

Links:

● Code/files for “Traditional Approach”○ http://browarddrupal.org/PastMeetings/march-2015

● Contentout sandbox module○ https://www.drupal.org/sandbox/iribarne/2461613

● Code for Contentout sandbox module○ git clone --branch 7.x-1.x http://git.drupal.org/sandbox/iribarne/2461613.git contentout

● Contentin sandbox module○ https://www.drupal.org/sandbox/iribarne/2461615

● Code for Contentin sandbox module○ git clone --branch 7.x-1.x http://git.drupal.org/sandbox/iribarne/2461615.git contentin

What Did You Think?

Please Evaluate this session at: fldrupal.camp/conference/schedule

Questions?

Please Evaluate this session at: fldrupal.camp/conference/schedule

http://iribarne.com/contact

If you liked my presentation, follow me on Twitter: @hectoriribarne

Go Fish:Details:

HectorIribarne

d.o. username: iribarne

http://certifiedtorock.com/u/192646