PHPackages                             islandora/migrate\_7x\_claw - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. islandora/migrate\_7x\_claw

ActiveDrupal-module[Utility &amp; Helpers](/categories/utility)

islandora/migrate\_7x\_claw
===========================

Tools to assist in Islandora 7.x to CLAW migrations.

2.x-dev(3y ago)1126527GPL-2.0-or-laterPHPCI failing

Since Apr 26Pushed 11mo ago16 watchersCompare

[ Source](https://github.com/Islandora-Devops/migrate_7x_claw)[ Packagist](https://packagist.org/packages/islandora/migrate_7x_claw)[ Docs](https://github.com/Islandora-Devops/migrate_7x_claw)[ RSS](/packages/islandora-migrate-7x-claw/feed)WikiDiscussions 1.x Synced today

READMEChangelogDependencies (7)Versions (2)Used By (0)

Introduction
------------

[](#introduction)

This module contains plugins to import data from a Fedora 3 Islandora instance into an Islandora 8 instance. It also contains a feature as a submodule that contains some example migrations. The example migrations are based on forms from vanilla Islandora 7.x solution packs, and are meant to work with the fields defined in `islandora_defaults`. If you customized your MODS forms, then you will also need to customize the example migration and `islandora_defaults`.

Currently, the following content models can be migrated over with full functionality:

- Collection
- Basic Image
- Large Image
- Audio
- Video
- PDF
- Binary

If you want some sample Basic Image objects with metadata made from stock forms, check out [this zip file](docs/examples/sample_objects.zip) that you can use with `islandora_zip_batch_importer`. All the images were obtained from [Pexels](https://www.pexels.com/) and are free to use for personal or business purposes, with the original photographers attributed in the MODS.

Installation
------------

[](#installation)

Download this module, its feature, and its dependencies with composer

```
composer require islandora/migrate_7x_claw

```

Install the module and example migrations at the same time using Drush

```
drush en islandora_migrate_7x_claw_feature

```

Configuration
-------------

[](#configuration)

By default, the migrations are configured to work with an `islandora_vagrant` instance running on the same host as a `claw-playbook` instance, which is convenient for development and testing. But for your Islandora 7.x instance, the following config will need to be set the same way on the source plugin of each migration (except for the "7.x Tags Migration from CSV" migration):

### Admin page

[](#admin-page)

**/admin/config/islandora/migrate\_7x\_claw**

[![Screen Shot 2019-11-08 at 12 32 30 PM](https://user-images.githubusercontent.com/2738244/68497994-da6e6400-0223-11ea-8247-d6b3dd117f80.png)](https://user-images.githubusercontent.com/2738244/68497994-da6e6400-0223-11ea-8247-d6b3dd117f80.png)

Please read the *Command Line Configuration* section for input value descriptions and purposes. Once saved you can run the migration groups tasks (admin/structure/migrate/manage/islandora\_7x/migrations)

#### Optional:

[](#optional)

To verify saved changes go to admin/config/development/configuration/single/export

- Configuration type: migration group
- Configuration Name: Each of the following should reflect the values given.
    - migrate\_plus.migration.islandora\_audit\_file
    - migrate\_plus.migration.islandora\_audit\_media
    - migrate\_plus.migration.islandora\_corporate
    - migrate\_plus.migration.islandora\_files
    - migrate\_plus.migration.islandora\_geographic
    - migrate\_plus.migration.islandora\_media
    - migrate\_plus.migration.islandora\_objects
    - migrate\_plus.migration.islandora\_person
    - migrate\_plus.migration.islandora\_subject

### Command Line Configuration

[](#command-line-configuration)

- `solr_base_url` should point to your Islandora 7.x Solr instance (i.e. `http://example.org:8080/solr`)
- `fedora_base_url` should point to your Fedora 3 instance (i.e. `http://example.org:8080/fedora`)
- The `username` and `password` for your Fedora 3 instance in the block ```
     plugin: basic
     username: fedoraAdmin
     password: fedoraAdmin

    ```
- `q` is used to define a Solr query that selects which objects get migrated. From a fresh clone, the migrations are configured to look for `islandora:sp_basic_image_collection` and all its children with the following query: ```
      RELS_EXT_isMemberOfCollection_uri_ms:"info:fedora/islandora:sp_basic_image_collection" OR PID:"islandora:sp_basic_image_collection"

    ```

You can easily import a collection of your own by changing the PID in the above query, or you can provide your own query to migrate over objects in other ways (such as per content model, in order by date created, etc...). If you can write a Solr select query for it, you can migrate it into Islandora 8. Omitting `q` from configuration will default to `*:*`for the Solr query.

Once you've updated the configuration, you need to re-import the feature to load your changes. You can do this with `drush`:

```
drush -y fim islandora_migrate_7x_claw_feature

```

You can also use the UI to import the feature if you go to `admin/config/development/features` and click on the `Changed` link next to "Migrate 7x Claw Feature".

[![Changed Link](docs/images/feature_click_changed.png)](docs/images/feature_click_changed.png)

From there, you can select all changes and clicking "Import Changes"

[![Import Changes](docs/images/feature_import_changes.png)](docs/images/feature_import_changes.png)

Running the migrations
----------------------

[](#running-the-migrations)

You can quickly run all migrations using `drush`:

```
drush -y mim --group islandora_7x

```

If you want to go through the UI, you can visit `admin/structure/migrate` to see a list of migration groups. The migrations provided by this module have the machine name `islandora_7x`.

[![Migrations Groups](docs/images/migrate_groups.png)](docs/images/migrate_groups.png)

You will see 8 migrations. *The "7.x Tags Migration from CSV" needs to be run first*.

[![Migrations](docs/images/migrations.png)](docs/images/migrations.png)

Clicking **Execute** on "7.x Tags Migration from CSV" migration displays a page like

[![Execute Migration](docs/images/execute_migration.png)](docs/images/execute_migration.png)

The operations you can run for a migration are

- **Import** - import un-migrated objects (check the "Update" checkbox to re-run previously migrated objects)
- **Rollback** - delete all the objects (if any) previously imported
- **Stop** - stop a long running import.
- **Reset** - reset an import that might have failed.

If you select "Import", and then click "Execute", it will run the migration. It should process 5 items.

Then you can run the "Islandora Media" migration, which depends on the remaining migrations. Running it effectively runs the entire group of migrations other than the "7.x Tags Migration from CSV" migration. After they're all done, you should be able to navigate to the home page of your Islandora 8 instance and see your content brought over from Islandora 7.x!

[![Content in Islandora 8](docs/images/content_in_claw.png)](docs/images/content_in_claw.png)

If you click on any node you should see all its metadata, which has been extracted from its MODS and Solr documents. Here's the original object in Islandora 7.x:

[![Free Smells in 7x](docs/images/free_smells_in_7x.png)](docs/images/free_smells_in_7x.png)

And here it is in Islandora 8:

[![Free Smells in Islandora 8](docs/images/free_smells_in_claw.png)](docs/images/free_smells_in_claw.png)

Clicking on the Media tab will reveal all of the datastreams migrated over from 7.x, which you can now manage through Islandora 8. Here's the original datastreams in Islandora 7.x:

[![Free Smells Datastreams](docs/images/free_smells_datastreams.png)](docs/images/free_smells_datastreams.png)

And here they are in Islandora 8 as Media:

[![Free Smells Media](docs/images/free_smells_media.png)](docs/images/free_smells_media.png)

You can also check out the collection itself, which should have its "Members" block populated:

[![Collection in Islandora 8](docs/images/collection_in_claw.png)](docs/images/collection_in_claw.png)

How this migration works
------------------------

[](#how-this-migration-works)

You provide a query, as `q` in the source plugin configuration, that defines which objects get migrated. For each result in the query, you can choose to use either the Solr doc for an object, the FOXML file for an object, or a particular datastream for an object by setting the `url_type` configuration. The migrations for subjects, geographics, and agents all target the MODS file of an object. The migration for datastreams uses FOXML, and the migration for the objects themselves use the Solr doc.

All datastreams are migrated over as-is, regardless of what data is extracted by the migrations and applied as fields.

Collection hierarchy is preserved so long as all the collections are in the `q` query results.

Subject, geographic, and person/corporate agents from MODS all get transformed into taxonomy terms, and content is tagged with these terms.

Advanced Drush commands
-----------------------

[](#advanced-drush-commands)

Useful drush commands for working with the migration process.

### Import command

[](#import-command)

This starts the import process from the command line with the username and action specified.

```
$ drush --uri=http://localhost:8000 --userid=1 -y migrate:import --group islandora_7x --update
        └─────────────────────────┘:└────────┘└─┘ └────────────┘ └──────────────────┘ └──────┘
URL of Islandora 8 ───┘                │       │        │                │                │
User Numeric ID  ──────────────────────┘       │        │                │                │
send yes to confirmation(optional) ────────────┘        │                │                │
Module and action ──────────────────────────────────────┘                │                │
Group name ──────────────────────────────────────────────────────────────┘                │
Update existing objects(optional) ────────────────────────────────────────────────────────┘
```

### Control the migration

[](#control-the-migration)

```
$ drush migrate:rollback --update --limit="1000 items" --feedback="20 items" islandora_audit_media
        └─────┘:└──────┘ └──────┘└───────────────────┘ └───────────────────┘ └───────────────────┘
Module Name ┘      │         │           │                      │                      │
Action ────────────┘         │           │                      │                      │
confirmation(optional) ──────┘           │                      │                      │
Number of unprocessed items to run ──────┘                      │                      │
Number of items to display after completed ─────────────────────┘                      │
Migration Step ────────────────────────────────────────────────────────────────────────┘
```

**Actions:**

- import
- **rollback**
- stop
- reset

**Migrations Steps:**

- islandora\_7x\_tags
- islandora\_audit\_file
- **islandora\_audit\_media**
- islandora\_corporate
- islandora\_files
- islandora\_geographic
- islandora\_media
- islandora\_objects
- islandora\_person
- islandora\_subject

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity30

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~777 days

Total

2

Last Release

335d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e6875ca967e30c512a9e14c6f05bba3199759ff56393ccf338ffddea4549e93?d=identicon)[Islandora](/maintainers/Islandora)

---

Top Contributors

[![whikloj](https://avatars.githubusercontent.com/u/2857697?v=4)](https://github.com/whikloj "whikloj (15 commits)")[![dannylamb](https://avatars.githubusercontent.com/u/20773151?v=4)](https://github.com/dannylamb "dannylamb (9 commits)")[![DonRichards](https://avatars.githubusercontent.com/u/2738244?v=4)](https://github.com/DonRichards "DonRichards (5 commits)")[![manez](https://avatars.githubusercontent.com/u/2371345?v=4)](https://github.com/manez "manez (4 commits)")[![rosiel](https://avatars.githubusercontent.com/u/1943338?v=4)](https://github.com/rosiel "rosiel (4 commits)")[![mjordan](https://avatars.githubusercontent.com/u/403918?v=4)](https://github.com/mjordan "mjordan (2 commits)")[![ysuarez](https://avatars.githubusercontent.com/u/725449?v=4)](https://github.com/ysuarez "ysuarez (1 commits)")[![dbernstein](https://avatars.githubusercontent.com/u/344939?v=4)](https://github.com/dbernstein "dbernstein (1 commits)")[![joecorall](https://avatars.githubusercontent.com/u/1189940?v=4)](https://github.com/joecorall "joecorall (1 commits)")[![jordandukart](https://avatars.githubusercontent.com/u/1337738?v=4)](https://github.com/jordandukart "jordandukart (1 commits)")[![ruebot](https://avatars.githubusercontent.com/u/218561?v=4)](https://github.com/ruebot "ruebot (1 commits)")[![alxp](https://avatars.githubusercontent.com/u/82412?v=4)](https://github.com/alxp "alxp (1 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/islandora-migrate-7x-claw/health.svg)

```
[![Health](https://phpackages.com/badges/islandora-migrate-7x-claw/health.svg)](https://phpackages.com/packages/islandora-migrate-7x-claw)
```

###  Alternatives

[farmos/farmos

A web-based farm record keeping application.

1.2k6.7k1](/packages/farmos-farmos)[acquia/acquia-migrate-accelerate

An enhanced UI and assistant for Drupal migrations. See https://www.acquia.com/drupal9/accelerate-your-migration.

1366.8k](/packages/acquia-acquia-migrate-accelerate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
