commit | 297a4227efa8f2cdd946cff18853852c6b006f44 | [log] [tgz] |
---|---|---|
author | Matthias Kadenbach <matthias.kadenbach@gmail.com> | Wed Feb 08 09:49:57 2017 |
committer | Matthias Kadenbach <matthias.kadenbach@gmail.com> | Wed Feb 08 09:49:57 2017 |
tree | a049c19f7718a9dca311ab05bca04b8f71eb2975 | |
parent | 9f774d3e6a76f0bbce88c0a4402d980fd440a9f1 [diff] |
fixing travis
Database migrations written in Go. Use as CLI or import as library.
go get -u -tags 'postgres' -o migrate github.com/mattes/migrate/cli import ( "github.com/mattes/migrate" _ "github.com/mattes/migrate/database/postgres" )
Database drivers are responsible for applying migrations to databases. Implementing a new database driver is easy. Just implement database/driver interface
Source Drivers read migrations from various locations. Implementing a new source driver is easy. Just implement the source/driver interface.
# dowload, build and install the CLI tool # -tags takes database and source drivers and will only build those $ go get -u -tags 'postgres' -o migrate github.com/mattes/migrate/cli $ migrate -help Usage: migrate OPTIONS COMMAND [arg...] migrate [ -version | -help ] Options: -source Location of the migrations (driver://url) -path Shorthand for -source=file://path -database Run migrations against this database (driver://url) -prefetch N Number of migrations to load in advance before executing (default 10) -verbose Print verbose logging -version Print version -help Print usage Commands: goto V Migrate to version V up [N] Apply all or N up migrations down [N] Apply all or N down migrations drop Drop everyting inside database version Print current migration version # so let's say you want to run the first two migrations migrate -database postgres://localhost:5432/database up 2 # if your migrations are hosted on github migrate -source github://mattes:personal-access-token@mattes/migrate_test \ -database postgres://localhost:5432/database down 2
import (
"github.com/mattes/migrate/migrate"
_ "github.com/mattes/migrate/database/postgres"
_ "github.com/mattes/migrate/source/github"
)
func main() {
m, err := migrate.New("github://mattes:personal-access-token@mattes/migrate_test",
"postgres://localhost:5432/database?sslmode=enable")
m.Steps(2)
}
Each migration version has an up and down migration.
1481574547_create_users_table.up.sql 1481574547_create_users_table.down.sql
Tests require Docker (for database driver testing).
make test-short DATABASE='postgres' make test