diff options
| author | Felix Hanley <felix@userspace.com.au> | 2020-02-08 10:47:16 +0000 |
|---|---|---|
| committer | Felix Hanley <felix@userspace.com.au> | 2020-02-08 10:47:16 +0000 |
| commit | 368d26cdd6ac182ed02701fcc694d748239841d8 (patch) | |
| tree | 508f4ebf5949fff00d77202669c6f0138cd8c90c | |
| parent | cf11cf76db3fc37b6635b9f5f63f262d93ba41a3 (diff) | |
| download | migrate-368d26cdd6ac182ed02701fcc694d748239841d8.tar.gz migrate-368d26cdd6ac182ed02701fcc694d748239841d8.tar.bz2 | |
Check for zero migrationsv0.1.0
| -rw-r--r-- | Makefile | 25 | ||||
| -rw-r--r-- | migrate.go | 20 |
2 files changed, 17 insertions, 28 deletions
@@ -1,24 +1,13 @@ -GOPATH?= $(HOME)/go - .PHONY: test -test: lint ## Run tests and create coverage report - go test -short -coverprofile=coverage.txt -covermode=atomic ./... - go tool cover -html=coverage.txt -o coverage.html +test: lint + go test -short -coverprofile=coverage.txt -covermode=atomic ./... \ + && go tool cover -html=coverage.txt -o coverage.html .PHONY: lint -lint: $(GOPATH)/bin/golint ## Run the code linter - @for file in $$(find . -name 'vendor' -prune -o -type f -name '*.go'); do \ - golint $$file; done - -$(GOPATH)/bin/golint: - go get -u golang.org/x/lint/golint +lint: + go vet ./... .PHONY: clean -clean: ## Clean up temp files and binaries - @rm -rf coverage* - -.PHONY: help -help: - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) |sort \ - |awk 'BEGIN{FS=":.*?## "};{printf "\033[36m%-30s\033[0m %s\n",$$1,$$2}' +clean: + rm -rf coverage* @@ -43,14 +43,12 @@ func (s sorted) Swap(i, j int) { s[i], s[j] = s[j], s[i] } // Version reports the current version of the database func (m *Migrator) Version() (int64, error) { - err := m.prepareForMigration() - if err != nil { + if err := m.prepareForMigration(); err != nil { return NilVersion, err } var version int64 - err = m.stmts["getVersion"].QueryRow().Scan(&version) - if err != nil { + if err := m.stmts["getVersion"].QueryRow().Scan(&version); err != nil { if err == sql.ErrNoRows { return NilVersion, nil } @@ -61,8 +59,7 @@ func (m *Migrator) Version() (int64, error) { // Migrate migrates the database to the highest possible version func (m *Migrator) Migrate() error { - err := m.prepareForMigration() - if err != nil { + if err := m.prepareForMigration(); err != nil { return err } @@ -73,8 +70,7 @@ func (m *Migrator) Migrate() error { // MigrateTo migrates the database to the specified version func (m *Migrator) MigrateTo(toVersion int64) error { - err := m.prepareForMigration() - if err != nil { + if err := m.prepareForMigration(); err != nil { return err } @@ -154,17 +150,21 @@ func (m *Migrator) prepareForMigration() error { return nil } + if len(m.migrations) < 1 { + return fmt.Errorf("migrate: no migrations loaded") + } + if m.versionTable == nil { vt := "schema_version" m.versionTable = &vt } if _, err := m.db.Exec(fmt.Sprintf(createTableSQL, *m.versionTable)); err != nil { - return err + return fmt.Errorf("migrate: failed to create version table: %w", err) } if err := m.prepareStmts(); err != nil { - return err + return fmt.Errorf("migrate: failed to prepare statements: %w", err) } sort.Sort(sorted(m.migrations)) |
