OSS探訪GitHubでログイン

CLIとGo libraryから複数databaseへversioned migrationを順序適用する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
18,954
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/09/09
ページ内ナビ

概要

golang-migrate/migrateはdatabase migration用のCLI兼Go libraryです。filesystemやembedded/remote sourceからmigrationを読み込み、PostgreSQL、MySQL、SQLite、MongoDB、Spanner、ClickHouse等のdatabase driverへversion順に適用します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

up/downとversion管理をCLIまたはlibraryから実行する

migration versionを追跡し、up/downや指定versionへの移動をCLI・Go APIから実行できます。失敗時にはdirty stateを保持して意図しない継続適用を防ぎます。

出典:[2]

migration sourceとdatabase driverを分離して複数backendへ対応する

filesystem、io/fs、cloud storage等のsource driverと、PostgreSQL、PGX、MySQL、SQLite、MongoDB、Spanner、ClickHouse等のdatabase driverを組み合わせられます。

出典:[2]

向いている用途

application deploymentとdatabase schema versionを明示的に同期したい場合に向く

CI/CDやrelease jobでschema changeを順序管理し、複数database種別でも同じmigration workflowを持ちたいbackend teamに適します。

出典:[2]

導入前の確認

v4.20.1はGo 1.25.11を宣言。release自体はv4.20.0配布失敗の即時mitigation

v4.20.1のgo.modはGo 1.25.11を指定します。v4.20.1はv4.20.0のCI/release failureを修正してregistryへ配布するためのreleaseです。migrationの同時実行、dirty state、破壊的down migration、connection URL escapingを運用手順で管理してください。

出典:[3][4][2]

参考にした公式資料

  1. [1]golang-migrate/migrate — GitHub repository(2026-10-06)
  2. [2]golang-migrate v4.20.1 — README(2026-10-06)
  3. [3]golang-migrate v4.20.1 — go.mod(2026-10-06)
  4. [4]golang-migrate v4.20.1 release(2026-10-06)
  5. [5]golang-migrate MIT license(2026-10-06)
編集部からの補足

CLIとlibraryの両方を使え、migration sourceとdatabase driverを分離した構成です。productionではmigration fileのimmutable運用、down可否、dirty state復旧、複数instanceからの同時実行防止をdeployment手順として決めてください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/golang-migrate/migrate.git
  2. 2

    リポジトリへ移動

    cd migrate
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

18,954 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
7
Open PR
180

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • go
  • golang
  • migration
  • migrations
  • database
  • postgres
  • cassandra
  • sqlite
  • mysql
  • neo4j
  • mongodb
  • databases
Stars
18,954
Forks
1,620
Watchers
88
Open Issues
313
Contributors
232
所有者種別
Organization
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/09/09

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?