ITオムライス

GO言語でgooseとSQLite3でデータベースを扱うときのメモ

2019-10-05 技術系

Go言語でgooseとsqlxを使ってSQLite3を操作するときのメモです。

gooseのインストール

マイグレーションツールのgooseをインストールします。

GitHub - pressly/goose

go get -u github.com/pressly/goose/cmd/goose

データベースの作成

マイグレーションファイルを作成します。

goose sqlite3 ./test.db create user sql

作成されたファイルにsql文を直接記述します。

-- +goose Up
-- +goose StatementBegin
create table user (
    id integer PRIMARY KEY,
    name varchar(255) NOT NULL,
    nickName varchar(255) NOT NULL,
    pass varchar(255) NOT NULL
);
-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
drop table user;
-- +goose StatementEnd

マイグレーション

データベースを指定してマイグレーションします。

goose sqlite3 ./test.db up 

ロールバックの際は下のコマンドでマイグレーションファイルのgoose Downに記述したsqlが実行されます。

goose sqlite3 ./test.db down