mirror of
https://github.com/TECHNOFAB11/dbmate.git
synced 2025-12-11 23:50:04 +01:00
Add errcheck and fix unchecked errors
This commit is contained in:
parent
913234a60d
commit
c6aba53e51
7 changed files with 40 additions and 13 deletions
|
|
@ -4,9 +4,10 @@ ENV GOPATH /go
|
|||
ENV PATH /go/bin:$PATH
|
||||
|
||||
# install build dependencies
|
||||
RUN apk add -U --no-progress go git ca-certificates
|
||||
RUN apk add -U --no-progress alpine-sdk go
|
||||
RUN go get \
|
||||
github.com/golang/lint/golint \
|
||||
github.com/kisielk/errcheck \
|
||||
golang.org/x/tools/cmd/vet
|
||||
|
||||
# copy source files
|
||||
|
|
|
|||
1
Makefile
1
Makefile
|
|
@ -8,6 +8,7 @@ build:
|
|||
lint:
|
||||
$(DOCKER) golint ./...
|
||||
$(DOCKER) go vet ./...
|
||||
$(DOCKER) errcheck ./...
|
||||
|
||||
test:
|
||||
$(DOCKER) go test ./...
|
||||
|
|
|
|||
18
commands.go
18
commands.go
|
|
@ -6,6 +6,7 @@ import (
|
|||
"github.com/adrianmacneil/dbmate/driver"
|
||||
"github.com/adrianmacneil/dbmate/driver/shared"
|
||||
"github.com/codegangsta/cli"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/url"
|
||||
"os"
|
||||
|
|
@ -72,6 +73,12 @@ func DropCommand(ctx *cli.Context) error {
|
|||
|
||||
const migrationTemplate = "-- migrate:up\n\n\n-- migrate:down\n\n"
|
||||
|
||||
func mustClose(c io.Closer) {
|
||||
if err := c.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// NewCommand creates a new migration file
|
||||
func NewCommand(ctx *cli.Context) error {
|
||||
// new migration name
|
||||
|
|
@ -102,7 +109,7 @@ func NewCommand(ctx *cli.Context) error {
|
|||
return err
|
||||
}
|
||||
|
||||
defer file.Close()
|
||||
defer mustClose(file)
|
||||
_, err = file.WriteString(migrationTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -126,7 +133,10 @@ func doTransaction(db *sql.DB, txFunc func(shared.Transaction) error) error {
|
|||
}
|
||||
|
||||
if err := txFunc(tx); err != nil {
|
||||
tx.Rollback()
|
||||
if err1 := tx.Rollback(); err1 != nil {
|
||||
return err1
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
@ -170,7 +180,7 @@ func MigrateCommand(ctx *cli.Context) error {
|
|||
|
||||
drv, db, err := openDatabaseForMigration(ctx)
|
||||
if db != nil {
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -323,7 +333,7 @@ func parseMigration(path string) (map[string]string, error) {
|
|||
func RollbackCommand(ctx *cli.Context) error {
|
||||
drv, db, err := openDatabaseForMigration(ctx)
|
||||
if db != nil {
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ func newContext() *cli.Context {
|
|||
}
|
||||
|
||||
func TestGetDatabaseUrl_Default(t *testing.T) {
|
||||
os.Setenv("DATABASE_URL", "postgres://example.org/db")
|
||||
err := os.Setenv("DATABASE_URL", "postgres://example.org/db")
|
||||
require.Nil(t, err)
|
||||
|
||||
ctx := newContext()
|
||||
u, err := main.GetDatabaseURL(ctx)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"github.com/adrianmacneil/dbmate/driver/shared"
|
||||
pq "github.com/lib/pq"
|
||||
"io"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
|
|
@ -26,6 +27,12 @@ func (postgres Driver) openPostgresDB(u *url.URL) (*sql.DB, error) {
|
|||
return postgres.Open(&postgresURL)
|
||||
}
|
||||
|
||||
func mustClose(c io.Closer) {
|
||||
if err := c.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// CreateDatabase creates the specified database
|
||||
func (postgres Driver) CreateDatabase(u *url.URL) error {
|
||||
name := shared.DatabaseName(u)
|
||||
|
|
@ -35,7 +42,7 @@ func (postgres Driver) CreateDatabase(u *url.URL) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
|
||||
_, err = db.Exec(fmt.Sprintf("CREATE DATABASE %s",
|
||||
pq.QuoteIdentifier(name)))
|
||||
|
|
@ -52,7 +59,7 @@ func (postgres Driver) DropDatabase(u *url.URL) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
|
||||
_, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s",
|
||||
pq.QuoteIdentifier(name)))
|
||||
|
|
@ -68,7 +75,7 @@ func (postgres Driver) DatabaseExists(u *url.URL) (bool, error) {
|
|||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
|
||||
exists := false
|
||||
err = db.QueryRow("SELECT true FROM pg_database WHERE datname = $1", name).
|
||||
|
|
@ -105,7 +112,7 @@ func (postgres Driver) SelectMigrations(db *sql.DB, limit int) (map[string]struc
|
|||
return nil, err
|
||||
}
|
||||
|
||||
defer rows.Close()
|
||||
defer mustClose(rows)
|
||||
|
||||
migrations := map[string]struct{}{}
|
||||
for rows.Next() {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import (
|
|||
"database/sql"
|
||||
"github.com/adrianmacneil/dbmate/driver/postgres"
|
||||
"github.com/stretchr/testify/require"
|
||||
"io"
|
||||
"net/url"
|
||||
"os"
|
||||
"testing"
|
||||
|
|
@ -24,6 +25,12 @@ func testURL(t *testing.T) *url.URL {
|
|||
return u
|
||||
}
|
||||
|
||||
func mustClose(c io.Closer) {
|
||||
if err := c.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateDropDatabase(t *testing.T) {
|
||||
d := postgres.Driver{}
|
||||
u := testURL(t)
|
||||
|
|
@ -40,7 +47,7 @@ func TestCreateDropDatabase(t *testing.T) {
|
|||
func() {
|
||||
db, err := sql.Open("postgres", u.String())
|
||||
require.Nil(t, err)
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
|
||||
err = db.Ping()
|
||||
require.Nil(t, err)
|
||||
|
|
@ -54,7 +61,7 @@ func TestCreateDropDatabase(t *testing.T) {
|
|||
func() {
|
||||
db, err := sql.Open("postgres", u.String())
|
||||
require.Nil(t, err)
|
||||
defer db.Close()
|
||||
defer mustClose(db)
|
||||
|
||||
err = db.Ping()
|
||||
require.NotNil(t, err)
|
||||
|
|
|
|||
2
main.go
2
main.go
|
|
@ -12,7 +12,7 @@ func main() {
|
|||
loadDotEnv()
|
||||
|
||||
app := NewApp()
|
||||
app.Run(os.Args)
|
||||
app.RunAndExitOnError()
|
||||
}
|
||||
|
||||
// NewApp creates a new command line app
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue