Introduction
GoArchive is a command-line tool for archiving related MySQL data across servers, with automatic dependency resolution and verification before deletion.
GoArchive is a command-line tool for moving related data out of a MySQL database. It archives a parent row together with every child row that depends on it, copies the whole set to an archive server in the correct order, confirms the copy arrived intact, and only then removes the data from the source.
What it does
Databases accumulate data that is no longer active but cannot simply be deleted: it is still referenced by other tables, still needed for reporting, or still subject to a retention obligation. Moving that data out means dealing with the relationships between tables.
GoArchive takes a description of those relationships and does the rest:
- Discovers every row that belongs with a given parent row, following the relationships you declared.
- Orders the work so parents are written before children, and children are removed before parents.
- Copies the data to the destination server in batches.
- Verifies that what arrived matches what was read.
- Removes the source data once verification succeeds.
- Records progress, so an interrupted run continues where it stopped.
Three workflows
GoArchive provides three ways to move data, all sharing the same discovery, ordering, and safety behaviour.
| Workflow | Copies to destination | Removes from source |
|---|---|---|
| Archive | Yes | Yes |
| Copy | Yes | No |
| Purge | No | Yes |
Alongside these, validate, dry-run, and plan let you inspect exactly what a
job will do before running it.
Requirements
| Database | MySQL 8.0 or later |
| Storage engine | InnoDB |
| Primary keys | A single-column primary key on every participating table |
| Root table | An integer primary key |
| Relationships | One-to-one and one-to-many |
Where to go next
- Installation β install the binary
- Quick Start β a working job in a few minutes
- Concepts β how discovery, batching, and verification work
- Guides β a walkthrough for each workflow
If you would like help setting an archiving plan up in production, our team is available for consulting and support .
