💬

gooseの基本

2024/05/08に公開

はじめに

このページでは、Go言語での「goose」パッケージについて記述します。

Gooseパッケージとは

Go言語でのデータベースマイグレーションを扱う際に、goose パッケージは非常に便利なツールです。このパッケージは、データベーススキーマの変更をバージョン管理し、シンプルなコマンドでマイグレーションの適用やロールバックを行うことができます。

Gooseのインストール

goose を使うにはまず、以下のコマンドを実行してインストールします。

go install github.com/pressly/goose/v3/cmd/goose@latest

マイグレーションファイルの作成

マイグレーションファイルは、特定のフォーマットで記述されたSQLファイルまたはGoファイルです。新しいマイグレーションを作成するには、以下のコマンドを使用します。

goose create add_post_table sql

このコマンドは add_post_table という名前の新しいSQLマイグレーションファイルを生成します。
以下はSQLマイグレーションファイルの例です。

-- +goose Up
CREATE TABLE post (
    id int NOT NULL,
    title text,
    body text,
    PRIMARY KEY(id)
);

-- +goose Down
DROP TABLE post;

マイグレーションの実行

データベースにマイグレーションを適用するには、以下のコマンドを実行します。

goose up

このコマンドは、まだ適用されていないすべてのマイグレーションをデータベースに適用します。特定のバージョンにマイグレーションを戻す場合は、down コマンドを使用します。

goose down

コマンドの比較

  • goose up:
    • すべての未適用マイグレーションを適用します。
  • goose down:
    • 最新のマイグレーションを1つロールバックします。
  • goose status:
    • データベースのマイグレーションの現在の状態を表示します。

公式ドキュメントはこちらのリンクで確認できます:Goose GitHub Repository

まとめ

goose パッケージはGo言語を使ったデータベースのマイグレーション管理に非常に役立つツールです。インストールからマイグレーションの作成、実行まで、簡単なコマンドで効率的にデータベースのバージョン管理が可能です。正確なマイグレーション管理を行うことで、データベースの整合性を保ち、開発プロセスをスムーズに進めることができます。

Discussion