# mattes/migrate

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mattes-migrate).**

2,282 stars · 321 forks · Go · NOASSERTION · archived

## Links

- GitHub: https://github.com/mattes/migrate
- awesome-repositories: https://awesome-repositories.com/repository/mattes-migrate.md

## Topics

`aws-s3` `cassandra` `crate` `database` `databases` `go` `golang` `google-cloud-spanner` `google-cloud-storage` `mariadb` `migration` `migrations` `mongodb` `mysql` `neo4j` `postgres` `ql` `spanner` `sql` `sqlite`

## Description

This project is a database schema migration engine that provides a command-line interface and a library for managing sequential structural changes. It functions as a version control utility for database schemas, enabling the application, reversion, and synchronization of incremental updates across development and production environments.

The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of relational and non-relational storage systems. It maintains schema consistency by using a dedicated metadata table to track versions and prevent concurrent updates. To ensure reliability, the engine includes mechanisms for graceful process termination, which protects database integrity during unexpected interruptions, and a manual state override feature to resolve inconsistencies following failed migration attempts.

The software supports a modular approach to infrastructure management by allowing migration scripts to be fetched from diverse local and remote sources. It facilitates automated deployment pipelines by organizing schema transitions into ordered pairs of scripts, ensuring that database structures remain aligned with application requirements throughout the project lifecycle.

## Tags

### Data & Databases

- [Schema Migration Tools](https://awesome-repositories.com/f/data-databases/schema-migration-tools.md) — Provides a command-line interface and library for managing and executing sequential database schema changes across multiple storage systems.
- [SQL Migration Frameworks](https://awesome-repositories.com/f/data-databases/sql-migration-frameworks.md) — Automates database schema updates by managing versioned migration scripts and structural changesets across development and production environments.
- [Database Schema Rollback Tools](https://awesome-repositories.com/f/data-databases/data-schema-management/schema-versioning/database-schema-rollback-tools.md) — Undoes previously applied schema changes to roll back the database structure to a prior version when updates need reversal. ([source](https://github.com/mattes/migrate/tree/master/cli))
- [Database Schema Managers](https://awesome-repositories.com/f/data-databases/database-schema-managers.md) — Synchronizes database structures across development stages by applying or reverting incremental changes throughout the project lifecycle. ([source](https://github.com/mattes/migrate/blob/master/README.md))
- [Database Versioning](https://awesome-repositories.com/f/data-databases/database-versioning.md) — Manages incremental changes to database structures to ensure consistency across environments throughout the project lifecycle.
- [Go Database Libraries](https://awesome-repositories.com/f/data-databases/go-database-libraries.md) — Provides programmatic access to schema versioning and state management for applications written in the Go language.
- [Migration Execution](https://awesome-repositories.com/f/data-databases/migration-execution.md) — Executes sequential schema changes to bring the database structure in line with the desired version or latest definition. ([source](https://github.com/mattes/migrate/tree/master/cli))
- [Sequential Migration Pairs](https://awesome-repositories.com/f/data-databases/structural-data-validators/data-structure-migration/schema-migrations/state-version-migrations/sequential-migration-pairs.md) — Organizes schema changes into ordered pairs of up and down scripts to ensure predictable and reversible database state transitions.
- [Database Driver Abstractions](https://awesome-repositories.com/f/data-databases/database-driver-abstractions.md) — Provides a standardized interface layer to translate generic migration commands into dialect-specific queries for various storage systems.
- [Database Schema Migrations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/database-schema-migrations.md) — Executes schema migration scripts across diverse storage environments using specialized drivers to maintain uniform data structures.
- [Multi-Database Connections](https://awesome-repositories.com/f/data-databases/multi-database-connections.md) — Executes schema migration scripts across various relational and non-relational storage environments using specialized drivers. ([source](https://github.com/mattes/migrate/tree/master/database))
- [Relational Database Integrations](https://awesome-repositories.com/f/data-databases/relational-database-integrations.md) — Applies sequential schema updates and rollbacks to relational databases to keep structures aligned with application requirements.
- [Schema Version Tracking](https://awesome-repositories.com/f/data-databases/schema-version-tracking.md) — Maintains a metadata table within the database to track schema versions and prevent concurrent migration updates.

### DevOps & Infrastructure

- [Database Deployment Automation](https://awesome-repositories.com/f/devops-infrastructure/database-deployment-automation.md) — Integrates database schema updates into deployment pipelines to ensure consistent and reliable transitions between database versions.

### Operating Systems & Systems Programming

- [Graceful Actor Terminations](https://awesome-repositories.com/f/operating-systems-systems-programming/system-signal-handling/actor-exit-signal-trapping/actor-termination-verification/graceful-actor-terminations.md) — Stops migration processes gracefully upon receiving termination signals to ensure database stability during unexpected shutdowns. ([source](https://github.com/mattes/migrate/tree/master/cli))
- [Graceful Interrupt Handlers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-signal-handling/graceful-interrupt-handlers.md) — Listens for system signals to halt migration operations safely and prevent database corruption during unexpected interruptions.

### Software Engineering & Architecture

- [Database Schema Migrations](https://awesome-repositories.com/f/software-engineering-architecture/data-migrators/database-schema-migrations.md) — Organizes schema changes into paired files that execute in a specific order to ensure consistent transitions between database versions. ([source](https://github.com/mattes/migrate/blob/master/MIGRATIONS.md))
