Go/migrate: Difference between revisions
< Go
Jump to navigation
Jump to search
| Line 32: | Line 32: | ||
mig-up: | mig-up: | ||
desc: "Use golang-migrate to upgrade db" | desc: "Use golang-migrate to upgrade db" | ||
env: | |||
PGPASSWORD: '{{.EMR_ADMIN_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 37: | Line 39: | ||
mig-down: | mig-down: | ||
desc: "Use golang-migrate to downgrade db" | desc: "Use golang-migrate to downgrade db" | ||
env: | |||
PGPASSWORD: '{{.EMR_ADMIN_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 | ||
Revision as of 01:20, 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: '{{.EMR_ADMIN_PASSWORD}}'
cmds:
- migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" up
mig-down:
desc: "Use golang-migrate to downgrade db"
env:
PGPASSWORD: '{{.EMR_ADMIN_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}}