From 6f8e6041099a1777e02db809706acfcfd6d04ae3 Mon Sep 17 00:00:00 2001 From: Said Rodrigues Date: Wed, 24 Apr 2024 21:23:25 -0300 Subject: [PATCH] feature(): add automatic database migration --- .github/workflows/migrate-database.yaml | 43 +++++++++++++++++++++++++ backend/cmd/migrate/main.go | 4 +++ 2 files changed, 47 insertions(+) create mode 100644 .github/workflows/migrate-database.yaml diff --git a/.github/workflows/migrate-database.yaml b/.github/workflows/migrate-database.yaml new file mode 100644 index 0000000..eb772a1 --- /dev/null +++ b/.github/workflows/migrate-database.yaml @@ -0,0 +1,43 @@ +name: Migrate database + +on: + push: + branches: ["main"] + paths: ["backend/internal/adapters/driven/postgres/migrations/**"] + +defaults: + run: + working-directory: ./backend + +permissions: + contents: read + +jobs: + if_merged: + if: github.event.pull_request.merged == true + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.22.x" + cache-dependency-path: backend/go.sum + + - name: Install Task + uses: arduino/setup-task@v1 + with: + version: 3.x + repo-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Migrate database + run: task migrate + env: + BRAIN_POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }} + BRAIN_POSTGRES_USER: ${{ secrets.POSTGRES_USER }} + BRAIN_POSTGRES_PORT: ${{ secrets.POSTGRES_PORT }} + BRAIN_POSTGRES_DATABASE: ${{ secrets.POSTGRES_DATABASE }} + BRAIN_POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} diff --git a/backend/cmd/migrate/main.go b/backend/cmd/migrate/main.go index 55876e6..79f8fd7 100644 --- a/backend/cmd/migrate/main.go +++ b/backend/cmd/migrate/main.go @@ -13,6 +13,10 @@ func main() { if err != nil { log.Fatal(err) } + err = koanf.LoadFromEnv("BRAIN_") + if err != nil { + log.Fatal(err) + } pgCfg, err := config.NewPostgresConfig() if err != nil { log.Fatal(err)