OSS探訪GitHubでログイン

SQL migrationとGo functionをCLI/libraryから実行するdatabase migration tool

スコアの見方

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

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

概要

gooseはdatabase schemaをincrementalに変更するCLI兼Go libraryです。SQL migrationとGo function migration、embedded migration、out-of-order適用、seed、environment variable置換等を提供し、Postgres、MySQL、SQLite、Spanner、ClickHouse、MSSQL等へ対応します。

特徴と向いている用途

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

主な特徴

SQLとGo functionのmigrationを同じversion workflowで管理する

timestampまたはsequential numberのmigrationを作成し、up、down、up-to、down-to、redo、status等のcommandでschema versionを進退できます。

出典:[2]

embedded migration・out-of-order・seed・lockをapplication要件に合わせる

Go embedを使ったmigration、missing migrationの後追い適用、seed data、SQL内environment variable substitutionに対応します。databaseごとのlockerも利用できます。

出典:[2][4]

向いている用途

Go applicationと同じrepositoryでschema migrationを管理したいteamに向く

CLI単体だけでなくlibraryとしてapplicationへ組み込み、SQLとGo codeの両方でmigrationを表現したいbackend projectに適します。

出典:[2]

導入前の確認

v3.28.0からminimum Go 1.26。driver別schema table変更とlockingを確認する

v3.28.0のgo.modはGo 1.26を指定します。releaseではAzure SQL driver、MySQL/MariaDB table lockerが追加され、ClickHouse version tableのORDER BYやMySQL/TiDB timestamp column型も新規table向けに変更されています。upgrade時はversion table schema、lock、driver-specific behaviorを確認してください。

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

参考にした公式資料

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

SQLだけでなくGo function migrationも扱え、embedded migrationやseedにも対応します。productionではmigration fileの順序・不可変性、lock方式、transaction可否、driver build tagをdeployment方式に合わせて固定してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/pressly/goose.git
  2. 2

    リポジトリへ移動

    cd goose
  3. 3

    公式手順を確認

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

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

成長

成長の推移 · 直近30日

11,544 Stars

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

開発アクティビティ

直近90日・週次

Commit(直近30日)
3
Open PR
44

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

Built with

カテゴリとタグ

GitHubデータ

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

GitHub Topics

  • database
  • sql
  • migration
  • schema
  • postgres
  • mysql
  • sqlite
  • golang
  • go
  • migrations
  • database-migrations
  • postgresql
Stars
11,544
Forks
711
Watchers
65
Open Issues
94
Contributors
136
所有者種別
Organization
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/10/03

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

情報の誤りを報告

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

このページを読んで、次に何をすればよいか分かりましたか?
goose v3.28.0とは?Go Database Migration Tool | OSS探訪