amacneil/dbmate

🚀 A lightweight, framework-agnostic database migration tool.

View on GitHub ↗Jump to charts ↓Open shareable report →

Summary Information

Updated 43 minutes ago
Added to GitGenius on June 23rd, 2026
Created on November 25th, 2015
Open Issues & Pull Requests: 43 (+0)
Number of forks: 357
Total Stargazers: 7,038 (+0)
Total Subscribers: 26 (+0)

Issue Activity (beta)

Open issues: 20
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 456 days
Stale 30+ days: 17
Stale 90+ days: 15

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • bug (23)
  • feature request (12)
  • needs more info (6)
  • go (3)
  • dependencies (2)
  • help wanted (2)
  • needs work (2)
  • breaking change (1)

Most active issues this week

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 2.9 days
90th percentile: 7.8 days
Tracked items: 58

Most active contributors

Detailed Description

Dbmate is a lightweight, framework-agnostic database migration tool written in Go that enables developers to keep database schemas synchronized across multiple developers and production servers. It functions as a standalone command-line tool that works independently of any specific programming language or framework, making it particularly valuable for teams maintaining multiple services written in different languages such as Go, Node.js, Python, Ruby, PHP, Rust, and C++.

The tool supports multiple database systems including MySQL, MariaDB, PostgreSQL, SQLite, ClickHouse, BigQuery, and Spanner. Migrations are written in plain SQL and are timestamp-versioned to prevent version number conflicts when multiple developers work simultaneously. Each migration runs atomically within a transaction, ensuring database consistency. The tool can create and drop databases, which proves especially useful during development and testing phases. Dbmate automatically maintains a schema.sql file that can be committed to version control, allowing teams to easily track and diff schema changes across git history.

Database connections are configured through environment variables, with DATABASE_URL being the default. The tool supports reading configuration from .env files, streamlining setup across team members. Dbmate distributes as a single self-contained binary available through multiple installation methods including NPM, Homebrew for macOS, direct binary installation for Linux, Scoop for Windows, and Docker images published to GitHub Container Registry.

The command-line interface offers comprehensive options for controlling migration behavior. Users can specify database URLs directly or through environment variables, choose specific drivers, define custom migration directories and table names, and control schema file generation. Additional flags enable strict mode to prevent out-of-order migrations, database availability waiting with configurable timeouts, and environment variable file specification.

Connection configuration varies by database type. PostgreSQL supports TLS requirements, Unix socket connections, passwordless authentication, and schema path specification. MySQL and MariaDB support Unix socket connections. SQLite uses filesystem paths with support for both relative and absolute file locations. ClickHouse offers native TCP and HTTP/HTTPS protocol options with cluster support through query parameters. BigQuery requires project ID and dataset specification with Google Cloud authentication.

According to GitGenius activity tracking, the repository demonstrates active maintenance with a median issue and pull request response latency of 0.0 hours and a mean latency of 72.2 hours across 56 tracked items. The most frequently labeled issues involve bugs (22 occurrences) and feature requests (11 occurrences), with some items requiring additional information (6 occurrences). The primary contributor dossy has logged 155 events, while repository creator amacneil has 35 events, and StFS has contributed 8 events. The project maintains connections with other significant repositories including vuejs/vue, travis-ci/travis-ci, and remotion-dev/remotion through overlapping contributor networks, indicating its integration within broader development ecosystems.

dbmate
by
amacneilamacneil/dbmate

Repository Details

Fetching additional details & charts...