1 of 26

The Great Hyrax Migration

2 of 26

What is Samvera

A Community and the Software

3 of 26

A Global Community of Technologists

  • Flexible, customizable repository solutions
  • A community of practice

4 of 26

  • Digital Collections System
  • Self-deposit System
  • Sheet Music
  • Architectural Resources
  • Electronic Theses & Dissertations
  • Digital Image System

  • Media Preservation System
  • Research Data Management
  • Digitization Workflow System
  • Digital Preservation System
  • Digital Archives System
  • And more!

Flexible Repository Software

5 of 26

  • Ruby on Rails
  • Solr and Blacklight
  • Mostly Fcrepo 4 today
  • Active Fedora -> Valkyrie

The Technology

6 of 26

It Is Finally Time

7 of 26

Paths for Migration

  • Stand up a new system, export everything from the old system and re-import it
  • Offline data migration and then a hard switch over
  • OR you could do it live.

8 of 26

^#*$ it! We'll Do It Live!

9 of 26

A Tail of Two Goddesses

10 of 26

But Which One Is Which?

11 of 26

Good question

Freyja => Postgres

This adapter will Freyja from FCREPO forever

Frigg => FCREPO 6

It's about Frigg'in time we had FCREPO 6 support

12 of 26

Steps for setting up an adapter

  • Upgrade to Hyrax 5
  • Create resource models
  • Model your existing properties in a config/metadata/.yaml file
  • Register models with Wings
  • Set your collection and admin_set models
  • Set your adapter
  • Bring over and actor customizations to Hyrax::Transactions
  • Other items

13 of 26

14 of 26

Upgrade to Hyrax 5

15 of 26

Create resource models

rails generate hyrax:work_resource ${MODEL_NAME}Resource field:type

16 of 26

Model your existing properties in a config/metadata/.yaml file

attributes:

abstract:

type: string

multiple: true

form:

primary: false

alternative_title:

type: string

multiple: true

form:

primary: false

based_near:

type: string

multiple: true

form:

primary: false

index_keys:

- "based_near_sim"

- "based_near_tesim"

17 of 26

Register with Wings

Wings::ModelRegistry.register(Asset, Asset)

Wings::ModelRegistry.register(AssetResource, Asset)

Wings::ModelRegistry.register(Collection, Collection) Wings::ModelRegistry.register(Hyrax::PcdmCollection, Collection)

�Wings::ModelRegistry.register(Hyrax::AdministrativeSet, AdminSet)

Wings::ModelRegistry.register(AdminSet, AdminSet)

18 of 26

Set Your Collection and AdminSet models

In config/initializers/hyrax.rb

config.collection_model = 'Hyrax::PcdmCollection'

config.admin_set_model = 'Hyrax::AdministrativeSet'

19 of 26

Set The Adapter

Valkyrie::MetadataAdapter.register(

Freyja::MetadataAdapter.new, :freyja

)

Valkyrie.config.metadata_adapter = :freyja �

Hyrax.config.query_index_from_valkyrie = true

Hyrax.config.index_adapter = :solr_index

20 of 26

Bring over and actor customizations to Hyrax::Transactions

21 of 26

Some Other Things to Check

  • Look for any other before/after model hooks and move them to listeners
  • Look for custom logic in your controllers
  • Look at the models to see if they have methods you need to port over or modify
  • Check you indexers, forms basically anywhere you call the ModelClass

22 of 26

Start Migrating Data!

23 of 26

What's Left?

  • Get adapters merged and released
  • FileSet and actual files support is still missing!
  • Needs a second adaptor

24 of 26

25 of 26

Demo

26 of 26

Thank You

Rob Kaufman, Scientist.com

rob@scientist.com

@orangewolf everywhere else