This documentation is a work in progress.

Migrate Database

Dump r5 database (mysql on pawpaw)

mysqldump -u avalonweb -p avalonweb --no-create-info --complete-insert --tables annotations api_tokens bookmarks courses identities ingest_batches playlist_items playlists role_maps  users > /tmp/avalon.r5.dump.sql


Load to r6 database

If you are a developer wanting to test your migration on sqlite locally...

Sqllite3 doesn't like mysql dump files so a transformation script needs to be run on it. Download https://raw.githubusercontent.com/dumblob/mysql2sqlite/master/mysql2sqlite, make it executable, and run it on the dump file.

chmod +x mysql2sqlite
./mysql2sqlite avalon.r5.dump.sql > avalon.r5.dump.sqlite
 
#then on r6
bundle exec rails dbconsole
sqlite> .read /tmp/avalon.r5.dump.sqlite

".read" returns "memory", which is good.

Clear role_map cache

bundle exec rails c
> Rails.cache.delete("RoleMapHash")

SSH into your r6 box, wipeout the database, and load the sqlite dump into your dbconsole.

# ensure that Fedora, Solr, and the DB are clean
# it will ask you to verify the targets are correct
bundle exec rake avalon:wipeout  
 
#go into the database console and import sqlite data
bundle exec rails dbconsole
mysql> source /tmp/avalon.r5.dump

 

Add yourself back in as administrator in the rails console

g = Admin::Group.find('administrator')
g.users += ["archivist1@example.com"]
g.save!

 

Migrate Fedora Objects

SSH tunnel or open up your fedora3 server to your new Avalon app:

#port 9999 stands for your local mirror of your fedora3.host:8983 import source
#if 9999 doesn't work, try another port nearby
ssh -L 9999:localhost:8983 user@fedora3.host

keep the ssh mirror running in another tab as you do the next steps.

Setup config/fedora3.yml in your Avalon 6 app

The fedora3.yml should work without change, but if you do have trouble, here's an example fedora3.yml for the avalon demo server.

development:
  user: fedoraAdmin
  password: <password>
  url: http://localhost:9999/fedora
test:
  user: fedoraAdmin
  password: <password>
  url: http://localhost:9999/fedora
production:
  user: fedoraAdmin
  password: <password>
  url: http://localhost:9999/fedora

 

Run the migration! You can watch it run on your target avalon by going to <you avalon url>/admin/migration_report .

bundle exec rake avalon:migrate:repo

After this command is finished, look through the report and see which items have failed and troubleshoot using the errors listed.


Migrate Database Tables

# Run script to map fedora 3 pids in database to newly minted fedora 4 noids
bundle exec rake avalon:migrate:db

 

Delete Failed Bookmarks

#This will delete any bookmarks that point to failed items
bundle exec rake avalon:migrate:bookmark_cleanup