Go/migrate: Difference between revisions
< Go
Jump to navigation
Jump to search
| (9 intermediate revisions by the same user not shown) | |||
| Line 11: | Line 11: | ||
| up || | | up || | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
migrate -path assets/migrations -database "postgres://sysop | migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" up | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| down || | | down || | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
migrate -path assets/migrations -database "postgres://sysop | migrate -path assets/migrations -database "postgres://sysop@localhost:45432/mydb" down | ||
</syntaxhighlight> | </syntaxhighlight> | ||
} | |} | ||
== | == Taskfile.yaml == | ||
<syntaxhighlight lang="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}} | |||
</syntaxhighlight> | |||
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}}