/setup-goose

Github action to setup Goose datamigration tool

Primary LanguageGoMIT LicenseMIT

GitHub Action to install and setup goose

This github actions installs and sets up the Goose migration tool binary.

Example usage

name: Migrate

on:
  push:
    branches: ['main']

jobs:
  migrate:
    name: Migrate
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-go@v5
        with:
          go-version: '1.20.x'

      - uses: actions/checkout@v3

      - uses: mscno/setup-goose@v1

      - run: goose up

That's it! This workflow will run your migrations using goose.

The action works on Linux and macOS runners. If you'd like support for Windows runners, let us know!

Select goose version to install

By default, pressly/setup-goose installs the latest released version of goose.

You can select a version with the version parameter:

- uses: mscno/setup-goose@v1
  with:
    version: v0.14.1

To build and install goose from source using go install, specify version: tip.

Running Migrations

goose is a database migration tool. You manage your database schema by creating incremental SQL or Go scripts.

After installing goose with this action, you can run your migrations with goose up:

- uses: mscno/setup-goose@v1
- run: goose up

You can also run specific migrations with goose up-to , roll back migrations with goose down, and more. See the goose documentation for more information.

A note on versioning

The @v0.X in the uses statement refers to the version of the action definition in this repo.

Regardless of what version of the action definition you use, pressly/setup-goose will install the latest released version of goose unless otherwise specified with version:.