Skip to main content
Metadata Migration Readiness: Your Pre-Flight ChecklistArchival Management
5 min readFor Archivists and Digital Preservation Specialists

Metadata Migration Readiness: Your Pre-Flight Checklist

You're facing decades of legacy finding aids, an aging database, and a digital preservation system waiting to be populated. Before you start transferring data, you need a migration plan that avoids creating more problems than it solves.

Simcoe County Archives recently moved 3,002 descriptions from printed finding aids into their digital systems. Their workflow highlights what separates a clean migration from a metadata disaster: systematic preparation, field-level validation, and controlled automation. This checklist distills those lessons into actionable steps you can verify before you touch a single record.

What This Checklist Covers

Use this checklist before migrating descriptive metadata from legacy systems, such as paper finding aids, retired databases, or obsolete content management platforms, into a modern digital preservation environment. It assumes you're working with archival description standards and need consistency across multiple access points.

Prerequisites

Before you start the checklist, confirm:

  • You have documented your source metadata schema. List every field name, data type, and separator character currently in use.
  • You know your target system's requirements. Download the technical specifications for metadata upload, including required fields, character limits, and prohibited characters.
  • You've identified a test collection. Pick 50-100 records that represent your trickiest edge cases, such as multi-value fields, special characters, and hierarchical relationships.

Migration Readiness Checklist

1. Source Documentation

Done when: You have a spreadsheet listing every metadata field in your source system, with examples of actual content from each field.

Include the field name, whether it's repeatable, what separator character divides multiple values, and a sample entry. At Simcoe County, this meant documenting 11 fields from printed finding aids and 61 from their DBTextWorks database. A good example is: "Start Date | Non-repeatable | Format: YYYY-MM-DD | Example: 1966-03-15"

2. Crosswalk Table

Done when: You've mapped every source field to a target field or documented why you're dropping it.

Create a two-column table showing source-to-target relationships. Flag fields with no direct equivalent. Simcoe County kept temporary fields like "Inventory of" and "Sub-category" to help assign subject headings, then deleted them post-migration. A good example is: documented decisions for every unmapped field, not just the easy 1:1 matches.

3. Separator Character Audit

Done when: You've identified every character used to separate multi-value entries and confirmed it won't break your target system.

Check your source data for pipe characters (|), semicolons, commas, or other delimiters. Simcoe County used pipes in their database but had to swap them for semicolons before uploading to Preservica. They also had to find grammatical semicolons in scope notes and replace them to prevent false field breaks. A good example is: a find-and-replace script that handles both technical and grammatical uses of separator characters.

4. Duplicate Detection Method

Done when: You can identify duplicate descriptions across collections using a reliable key field.

Define which field(s) constitute a unique record. Simcoe County used "Inventory of" plus "Accession number" to filter and deduplicate across thematic finding aids. A good example is: a documented process that flags potential duplicates for manual review rather than auto-deleting them.

5. Test Batch Validation

Done when: You've uploaded your test collection and verified that hierarchical relationships, multi-value fields, and special characters all render correctly.

Upload 50-100 records to your target system and check them field-by-field. Don't just confirm they imported; open the records and verify formatting, line breaks, diacritics, and linked authority terms. A good example is: a checklist of known problem patterns, such as em dashes, curly quotes, and non-ASCII characters, that you've confirmed either migrate cleanly or fail predictably.

6. Automation Code Review

Done when: If you're using scripts or AI-generated code, a second person has reviewed it and tested it against sample data.

Simcoe County used AI to generate an Excel macro for crosswalking fields. They reviewed the code for accuracy before deploying it. If you're prompting an AI tool, save the prompt and the output. Test the script on a subset before running it against your full dataset. A good example is: version-controlled code with comments explaining what each section does, plus a log of test runs showing expected vs. actual output.

7. Incremental Upload Plan

Done when: You've defined batch sizes, upload frequency, and rollback procedures.

Don't migrate everything at once. Simcoe County uploaded descriptions incrementally as collections were cleaned. Define how many records constitute a batch, how you'll track what's been uploaded, and what you'll do if a batch fails validation. A good example is: a spreadsheet tracking collection name, record count, upload date, and validation status for each batch.

8. Cross-Platform Consistency Check

Done when: You've confirmed that a record uploaded to your preservation system displays the same metadata as the same record in your access database.

If you're populating multiple systems, such as a public database and a digital preservation platform, spot-check records in both. Simcoe County needed descriptions in both their non-government records database and Preservica. A good example is: side-by-side screenshots showing identical field values in both systems, with documented explanations for any intentional differences.

Common Mistakes

Assuming clean source data. Legacy systems accumulate inconsistencies over decades. Budget time for cleaning before you crosswalk.

Ignoring character encoding. UTF-8 in your source system may not be UTF-8 in your target. Test special characters early.

Automating too early. Write the crosswalk and cleaning rules manually for your first 100 records. Only then should you script it.

Skipping the rollback plan. If a batch upload corrupts existing records, you need to know how to undo it within your target system's constraints.

Next Steps

After completing this checklist, run your first production batch. Upload one complete collection, validate it in both systems, and document any new issues you discover. Update your crosswalk table and cleaning workflow based on what you learn.

Then establish a regular migration cadence. Simcoe County has been uploading descriptions since November 2025 and continues working through their backlog. Consistency matters more than speed when you're building a foundation for long-term digital preservation.

You Might Also Like