Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration docs updates #1603

Merged
merged 3 commits into from
Sep 4, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/technical-documentation/migrate-7x.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## Migrating from Islandora 7.x to Islandora CLAW (YouTube Video)
## Migrating from Islandora 7.x to Islandora 8 (YouTube Video)

[![Migrating from Islandora 7.x to Islandora CLAW](https://img.youtube.com/vi/fEDzfSPjKEo/0.jpg)](https://www.youtube.com/watch?v=fEDzfSPjKEo)
[![Islandora Webinar: Migrating from Islandora 7 to Islandora 8](https://img.youtube.com/vi/n0kLOB8ZdbM/0.jpg)](https://www.youtube.com/watch?v=n0kLOB8ZdbM)
Nov 21, 2019

For tools to migrate into Islandora 8 from an existing Islandora 7 instance, please see [migrate_7x_claw](https://github.com/Islandora-devops/migrate_7x_claw)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While you're in here, seems like this should point to your new Migration Overview page instead or at least reference the CSV migration module.

151 changes: 151 additions & 0 deletions docs/technical-documentation/migration-overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
## Islandora 8 Migration Overview

This video provides an overview of the various options available to migrate data into an Islandora 8 installation.

[![Islandora Online: Islandora Migration Tools](https://img.youtube.com/vi/95Bnix-z1zY/0.jpg)](https://www.youtube.com/watch?v=95Bnix-z1zY)

The three options are:
- REST API
- Migrate API
- Islandora Workbench

### REST API

Why use the rest API?
- Works anywhere
- You don’t have to work on the Drupal server. Migrate from your laptop!
- No PHP required
- Use any language that can make an http request. Even cURL will do just fine.
- JSON
- Why use XML if you don’t have to?

BONUS: It’s just Drupal’s REST API

Islandora only provides two additional API endpoints:

- /media/{mid}/source
- PUT a file to this endpoint to create/update a Media’s file
- /node/{nid}/media/{media_type}/{taxonomy_term}
- PUT a file to this endpoint to create/update a Media for a Node

Just be aware, you are writing everything yourself! (In other words you are making all of the migration decisions yourself.)

### Migrate API

Uses the Drupal 8 [Migrate API](https://www.drupal.org/docs/8/api/migrate-api/migrate-api-overview), which "provides services for migrating data from a source system to Drupal 8.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This builds fine and displays nicely. Just wondering about the start of this sentence. It feels like it is missing something?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It reads consistent with the rest of the document. Improvements can always happen later.


The "source system" can be almost anything:
- an Islandora 7 system
- a group of scanned images and their metadata inside a CSV file
- a web API

Why use the Migrate API?

- You can (potentially) do everything with configs!
- Leverage contrib module plugins.
- Making plugins for more complex sources and processes is (relatively) simple.
- Updating metadata is as simple as:
`drush mim node --update`

A Migration Configuration defines an Extract, Transform, Load (ETL) process.

- Source plugins extract data from a source
- Process plugins transform the data
- Destination plugins load the data (create new entities)

We’ve built two tools for you using the Migrate API:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found this section a bit hard to follow (there's a lot of information, which is awesome!). Can you add some sub-headings to break it out visually? I think if "A Migration Configuration defines an Extract, Transform, Load (ETL) process." was ####, it would read easier.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added more Markdown headings marks to the docs. Let me know what you think.


- [migrate_islandora_csv](https://github.com/Islandora/migrate_islandora_csv)
- Tutorial with a sample migration using some files and a CSV
- [migrate_7x_claw](https://github.com/Islandora-Devops/migrate_7x_claw)
- A tool to get all your Islandora 7 content migrated over

Recap of migrate_islandora_csv:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did some testing, and headlines can go as deep as 6 #'s, so these sub-section could be headlined too.

- CSVs
- Everyone understands and knows how to work with CSVs
- Documented
- It’s a step by step walkthrough
ysuarez marked this conversation as resolved.
Show resolved Hide resolved
- Process Metadata
- Clean up / transform the metadata using processors
- Build Relationships
- Migrations can reference other migrated content or generate new content on the fly

Recap of migrate_7x_claw:

- Designed to migrate Islandora 7 data to Islandora 8.
- DATASTREAMS
- All of your datasteams, including the audit trail, are migrated
- METADATA
- Migrate metadata from Solr or any XML datastream
- CUSTOMIZABLE
- Migrate_7x_claw is a starting point, meant to be tailored to your metadata

To make migrate_7x_claw work you need:

- Access
- You need credentials to both your Islandora 7 and 8 installs.
- Migrate API Knowledge
- The tutorial for migrate_islandora_csv
Is still relevant
- Config Sync
- You need to understand Drupal config synchronization. Features knowledge helps too.
- Command Line Skills
- This is best done with shell access and drush

#### Migrate API demo video

Check out this video that demonstrates the Drupal Migrate API migration process: [Islandora Webinar: Migrating from Islandora 7 to Islandora 8](migrate-7x.md)

### Islandora Workbench

https://github.com/mjordan/islandora_workbench
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you make this URL a hyperlink to its location. Just so people can click through


More tailored for end users with less technical knowledge or limited server access.

- Uses Islandora’s REST API
- Runs on your computer
- “CSVs and a pile of scans”
- Cross Platform - Python

Islandora Workbench highlights:

- Opinionated
- MUCH less configuration. Decisions made for you.
- No Processing
- CSV has to be in the right format
- Write Operations
- Create, Update, and Delete content
- Bumpers On
- Configuration and CSV are validated

Islandora Workbench Basics:

- Column names are field names
- If your value contains a comma, wrap it in double quotes
- Multiple values are pipe delimited
- Entity references are done via numeric id (nid, mid, tid)

Islandora Workbench - Taxonomy Terms:

- Can use term id, term name, or both
- 26
- Cats
- 26|Cats
- If using multiple vocabularies, prefix with vocabulary id:
- cats:Calico|dogs:Dachshund
- Terms that don’t exist can be created

Islandora Workbench - More Field Types:

- Typed Relations - Prefix term ids with namespace:rel:
- relators:pht:30
- Relators:pht:30|relators:pub:45
- Geolocation fields - “Lat,Long”
- "49.16667,-123.93333"

Paged Content - Two Ways:

- Metadata on Parent
- Simple directory structure and filename convention
- Page Level Metadata
- Parent and page metadata in same CSV
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ nav:
- 'Alpaca Technical Stack': 'alpaca/alpaca-technical-stack.md'
- 'Alpaca Tips': 'technical-documentation/alpaca_tips.md'
- Migration:
- 'Migration Overview': 'technical-documentation/migration-overview.md'
- 'CSV': 'technical-documentation/migrate-csv.md'
- 'Islandora 7': 'technical-documentation/migrate-7x.md'
- Contributing:
Expand Down