diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7c19b61 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +.PHONY: docker migration dev clean test + +DB_USER=test +DB_PASS=test +DB_DATABASE=test +DB_DSN=postgres://$(DB_USER):$(DB_PASS)@127.0.0.1:5432/$(DB_DATABASE)?sslmode=disable + +MIGRATION=migrate -url '$(DB_DSN)' +MIGRATION_SCHEMA=./sql +MIGRATION_TEST_DATA=./sqltest + +DOCKER_COMPOSE_FILE=./docker/docker-compose.yml +DOCKER_COMPOSE=docker-compose -f $(DOCKER_COMPOSE_FILE) + +docker: + $(DOCKER_COMPOSE) up -d + sleep 2 + +migration: + $(MIGRATION) -path $(MIGRATION_SCHEMA) up + $(MIGRATION) -path $(MIGRATION_TEST_DATA) up + +dev: docker migration + +clean: + $(DOCKER_COMPOSE) stop + $(DOCKER_COMPOSE) rm --force --all + +test: docker + POSTGRES_DSN="$(DB_DSN)" go test -v -p=1 ./... diff --git a/README.md b/README.md index d9b8848..0b9ea33 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,26 @@ -## Setup the dev env - -Just run the docker-compose file to create the database. - +## Dev ``` -docker-compose up -d +make dev ``` +To setup the dev env. + +## Connect to the database + +``` +docker run -it --rm --link canape_postgresql_dev:postgres postgres:9.5 psql -h postgres -U test +``` ## Run the tests ``` -POSTGRES_DSN="postgres://test:test@127.0.0.1:5432/test?sslmode=disable" go test -v -p=1 ./... +make test +``` + +## To clean up + +``` +make clean ``` diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 80% rename from docker-compose.yml rename to docker/docker-compose.yml index 75fd8ea..0413f89 100644 --- a/docker-compose.yml +++ b/docker/docker-compose.yml @@ -5,5 +5,7 @@ postgresql: environment: - POSTGRES_PASSWORD=test - POSTGRES_USER=test + volumes: + - .:/docker-entrypoint-initdb.d/ ports: - 127.0.0.1:5432:5432 diff --git a/docker/init.sql b/docker/init.sql new file mode 100644 index 0000000..3c2e2cb --- /dev/null +++ b/docker/init.sql @@ -0,0 +1 @@ +CREATE DATABASE dev; diff --git a/main.go b/main.go index 8762ee8..6d17083 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,7 @@ func (b *UserBackend) Get(username string) (auth.User, error) { func main() { log := logrus.NewEntry(logrus.New()) - pgdsn := "postgres://test:test@127.0.0.1:5432/test?sslmode=disable" + pgdsn := "postgres://test:test@127.0.0.1:5432/dev?sslmode=disable" db, err := sqlx.Connect("postgres", pgdsn) if err != nil { log.Panic(err) diff --git a/sqltest/001_data.down.sql b/sqltest/101_data.down.sql similarity index 100% rename from sqltest/001_data.down.sql rename to sqltest/101_data.down.sql diff --git a/sqltest/001_data.up.sql b/sqltest/101_data.up.sql similarity index 100% rename from sqltest/001_data.up.sql rename to sqltest/101_data.up.sql