Merge pull request #78 from vulcanize/databaseConfig

Adds user param to the Makefile and MigrationManager
This commit is contained in:
ana0 2019-04-11 16:22:50 -04:00 committed by GitHub
commit 0f425ac76b
4 changed files with 11 additions and 3 deletions

1
Gopkg.lock generated
View File

@ -542,7 +542,6 @@
"github.com/ethereum/go-ethereum/ethdb", "github.com/ethereum/go-ethereum/ethdb",
"github.com/ethereum/go-ethereum/p2p", "github.com/ethereum/go-ethereum/p2p",
"github.com/ethereum/go-ethereum/p2p/discv5", "github.com/ethereum/go-ethereum/p2p/discv5",
"github.com/ethereum/go-ethereum/params",
"github.com/ethereum/go-ethereum/rlp", "github.com/ethereum/go-ethereum/rlp",
"github.com/ethereum/go-ethereum/rpc", "github.com/ethereum/go-ethereum/rpc",
"github.com/hashicorp/golang-lru", "github.com/hashicorp/golang-lru",

View File

@ -70,7 +70,8 @@ build: dep
HOST_NAME = localhost HOST_NAME = localhost
PORT = 5432 PORT = 5432
NAME = NAME =
CONNECT_STRING=postgresql://$(HOST_NAME):$(PORT)/$(NAME)?sslmode=disable USER = postgres
CONNECT_STRING=postgresql://$(USER)@$(HOST_NAME):$(PORT)/$(NAME)?sslmode=disable
# Parameter checks # Parameter checks
## Check that DB variables are provided ## Check that DB variables are provided
@ -79,6 +80,7 @@ checkdbvars:
test -n "$(HOST_NAME)" # $$HOST_NAME test -n "$(HOST_NAME)" # $$HOST_NAME
test -n "$(PORT)" # $$PORT test -n "$(PORT)" # $$PORT
test -n "$(NAME)" # $$NAME test -n "$(NAME)" # $$NAME
test -n "$(USER)" # $$USER
@echo $(CONNECT_STRING) @echo $(CONNECT_STRING)
## Check that the migration variable (id/timestamp) is provided ## Check that the migration variable (id/timestamp) is provided

View File

@ -61,6 +61,7 @@ It can be additionally helpful to add `$GOPATH/bin` to your shell's `$PATH`.
1. `createdb vulcanize_public` 1. `createdb vulcanize_public`
1. `cd $GOPATH/src/github.com/vulcanize/vulcanizedb` 1. `cd $GOPATH/src/github.com/vulcanize/vulcanizedb`
1. Run the migrations: `make migrate HOST_NAME=localhost NAME=vulcanize_public PORT=5432` 1. Run the migrations: `make migrate HOST_NAME=localhost NAME=vulcanize_public PORT=5432`
- There is an optional var `USER=username` if the database user is not the default user `postgres`
- To rollback a single step: `make rollback NAME=vulcanize_public` - To rollback a single step: `make rollback NAME=vulcanize_public`
- To rollback to a certain migration: `make rollback_to MIGRATION=n NAME=vulcanize_public` - To rollback to a certain migration: `make rollback_to MIGRATION=n NAME=vulcanize_public`
- To see status of migrations: `make migration_status NAME=vulcanize_public` - To see status of migrations: `make migration_status NAME=vulcanize_public`

View File

@ -128,7 +128,13 @@ func (m *manager) fixAndRun(path string) error {
return errors.New(fmt.Sprintf("version fixing for plugin migrations at %s failed: %s", path, err.Error())) return errors.New(fmt.Sprintf("version fixing for plugin migrations at %s failed: %s", path, err.Error()))
} }
// Run the copied migrations with goose // Run the copied migrations with goose
pgStr := fmt.Sprintf("postgres://%s:%d/%s?sslmode=disable", m.DBConfig.Hostname, m.DBConfig.Port, m.DBConfig.Name) var pgStr string
if len(m.DBConfig.User) > 0 && len(m.DBConfig.Password) > 0 {
pgStr = fmt.Sprintf("postgresql://%s:%s@%s:%d/%s?sslmode=disable",
m.DBConfig.User, m.DBConfig.Password, m.DBConfig.Hostname, m.DBConfig.Port, m.DBConfig.Name)
} else {
pgStr = fmt.Sprintf("postgres://%s:%d/%s?sslmode=disable", m.DBConfig.Hostname, m.DBConfig.Port, m.DBConfig.Name)
}
cmd = exec.Command("goose", "postgres", pgStr, "up") cmd = exec.Command("goose", "postgres", pgStr, "up")
cmd.Dir = m.tmpMigDir cmd.Dir = m.tmpMigDir
err = cmd.Run() err = cmd.Run()