Go/migrate: Difference between revisions

From Fundamental Ramen
< Go
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 23: Line 23:


<syntaxhighlight lang="yaml">
<syntaxhighlight lang="yaml">
dotenv: ['.env']
# ...
tasks:
  # ...
   mig-up:
   mig-up:
     desc: "Use golang-migrate to upgrade db"
     desc: "Use golang-migrate to upgrade db"
    env:
      PGPASSWORD: '{{.MYDB_PASSWORD}}'
     cmds:
     cmds:
       - migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" up
       - migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" up
Line 30: Line 39:
   mig-down:
   mig-down:
     desc: "Use golang-migrate to downgrade db"
     desc: "Use golang-migrate to downgrade db"
    env:
      PGPASSWORD: '{{.MYDB_PASSWORD}}'
     cmds:
     cmds:
       - migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" down
       - migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" down

Latest revision as of 01:21, 31 July 2026

Best practice

Purpose Command
create
migrate create -ext sql -dir assets/migrations -seq {{.CLI_ARGS}}
up
migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" up
down
migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" down

Taskfile.yaml

dotenv: ['.env']

# ...

tasks:
  # ...

  mig-up:
    desc: "Use golang-migrate to upgrade db"
    env:
      PGPASSWORD: '{{.MYDB_PASSWORD}}'
    cmds:
      - migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" up

  mig-down:
    desc: "Use golang-migrate to downgrade db"
    env:
      PGPASSWORD: '{{.MYDB_PASSWORD}}'
    cmds:
      - migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" down

  mig-create:
    desc: "Use golang-migrate to create up/down file (Usage: task mig-create -- NAME)"
    CLI_ARGS: true
    cmds:
      # by date
      # - migrate create -ext sql -dir assets/migrations -format "060102" -tz "Asia/Taipei" {{.CLI_ARGS}}
      # by sequence number
      - migrate create -ext sql -dir assets/migrations -seq {{.CLI_ARGS}}