From 8d453e92368eec9fa0b25aa046108f6bf513e35c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Thu, 15 Feb 2018 12:41:00 +0100 Subject: [PATCH] Cleanup SQL migrations * upgrade the migrate package * remove the dev migrations * remove unused migration code --- Makefile | 7 ++----- README.md | 14 +++++++++++--- docker/run.sh | 2 +- sql/dev/101_data.down.sql | 1 - sql/dev/101_data.up.sql | 2 -- src/internal/sqly/sqly.go | 37 ------------------------------------- 6 files changed, 14 insertions(+), 49 deletions(-) delete mode 100644 sql/dev/101_data.down.sql delete mode 100644 sql/dev/101_data.up.sql diff --git a/Makefile b/Makefile index 88e0986..e615f01 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ DB_PASS=test DB_DSN_DEV=postgres://$(DB_USER):$(DB_PASS)@127.0.0.1:5432/dev?sslmode=disable DB_DSN_TEST=postgres://$(DB_USER):$(DB_PASS)@127.0.0.1:5432/test?sslmode=disable -MIGRATION=migrate -url '$(DB_DSN_DEV)' +MIGRATION=migrate -database '$(DB_DSN_DEV)' MIGRATION_SCHEMA=./sql/migration MIGRATION_TEST_DATA=./sql/dev @@ -38,10 +38,7 @@ build_docker_image: migration-schema: docker $(MIGRATION) -path $(MIGRATION_SCHEMA) up -migration-dev-data: docker migration-schema - $(MIGRATION) -path $(MIGRATION_TEST_DATA) up - -migration: migration-schema migration-dev-data +migration: migration-schema dev: docker migration watch-go diff --git a/README.md b/README.md index 3851b05..88e344c 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,9 @@ go get ./... go tools: ``` -go get -v github.com/pilu/fresh -go get -v github.com/mattes/migrate +go get -v -u github.com/pilu/fresh +go get -v -u github.com/mattes/migrate +go build -tags 'postgres' -o $GOPATH/bin/migrate github.com/mattes/migrate/cli ``` ## Dev @@ -50,7 +51,14 @@ yarn start docker run -it --rm -e PGPASSWORD=test --link canape_postgresql_dev:postgres postgres:9.5 psql -h postgres -U test -d dev ``` -## Default users +## Setup the dev users + +Connect to the database and enter this sql queries: + +``` +INSERT INTO users (name, hash, admin, activated) VALUES ('test', '$2a$10$QHx07iyuxO1RcehgtjMgjOzv03Bx2eeSKvsxkoj9oR2NJ4cklh6ue', false, true); +INSERT INTO users (name, hash, admin, activated) VALUES ('admin', '$2a$10$qAbyDZsHtcnhXhjhQZkD2uKlX72eMHsX8Hi2Cnl1vJUqHQiey2qa6', true, true); +``` This users are defined with this parameters: pepper: "pepper" diff --git a/docker/run.sh b/docker/run.sh index af000c9..0d0dfa5 100755 --- a/docker/run.sh +++ b/docker/run.sh @@ -2,7 +2,7 @@ echo "Running migrations..." /opt/canapeapp/migrate \ - -url postgres://${DB_USER}:${DB_PASS}@database:5432/${DB_ENV}?sslmode=disable \ + -database "postgres://$DB_USER:$DB_PASS@database:5432/$DB_ENV?sslmode=disable" \ -path /opt/canapeapp/migrations \ up echo "Migrations done" diff --git a/sql/dev/101_data.down.sql b/sql/dev/101_data.down.sql deleted file mode 100644 index 6f114a7..0000000 --- a/sql/dev/101_data.down.sql +++ /dev/null @@ -1 +0,0 @@ -DELETE FROM users; diff --git a/sql/dev/101_data.up.sql b/sql/dev/101_data.up.sql deleted file mode 100644 index ec5228f..0000000 --- a/sql/dev/101_data.up.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT INTO users (name, hash, admin, activated) VALUES ('test', '$2a$10$QHx07iyuxO1RcehgtjMgjOzv03Bx2eeSKvsxkoj9oR2NJ4cklh6ue', false, true); -INSERT INTO users (name, hash, admin, activated) VALUES ('admin', '$2a$10$qAbyDZsHtcnhXhjhQZkD2uKlX72eMHsX8Hi2Cnl1vJUqHQiey2qa6', true, true); diff --git a/src/internal/sqly/sqly.go b/src/internal/sqly/sqly.go index b83f42a..96bf61a 100644 --- a/src/internal/sqly/sqly.go +++ b/src/internal/sqly/sqly.go @@ -1,49 +1,12 @@ package sqly import ( - "os" - "testing" "time" - - "github.com/jmoiron/sqlx" - "github.com/mattes/migrate/migrate" ) -var migrationPath string - -func init() { - migrationPath = os.Getenv("MIGRATION_PATH") - if migrationPath == "" { - migrationPath = "../../../sql/migration" - } -} - // BaseModel have to be embeded in all your struct which reflect a table type BaseModel struct { ID string `json:"id"` Updated time.Time `db:"updated_at" json:"updated_at"` Created time.Time `db:"created_at" json:"created_at"` } - -// RunWithLastestMigration runs your test with database migration set to the lastest -func RunWithLastestMigration(db *sqlx.DB, pgdsn string, t *testing.T, test func(db *sqlx.DB, t *testing.T)) { - defer func() { - allErrors, ok := migrate.DownSync(pgdsn, migrationPath) - if !ok { - for _, err := range allErrors { - t.Log(err) - t.Fatal("We get some errors when reset the database schema") - } - } - }() - - allErrors, ok := migrate.UpSync(pgdsn, migrationPath) - if !ok { - for _, err := range allErrors { - t.Log(err) - t.Fatal("Impossible to run test we get some errors when initialize the database schema") - } - } - - test(db, t) -}