diff --git a/database/database.go b/database/database.go deleted file mode 100644 index 8ddd0f1..0000000 --- a/database/database.go +++ /dev/null @@ -1,45 +0,0 @@ -package database - -import ( - "context" - "github.com/go-pg/pg/v10" - log "github.com/sirupsen/logrus" - "sync" - "time" -) - -var ( - instance *pg.DB - once sync.Once -) - -func NewPgDB(pgOptions *pg.Options) *pg.DB { - once.Do(func() { - instance = Connect(pgOptions) - }) - - return instance -} - -func Connect(pgOptions *pg.Options) *pg.DB { - log.Info("connecting to postgres database...") - ctx := context.Background() - db := pg.Connect(pgOptions) - - log.Info("verifying postgres connection...") - if err := db.Ping(ctx); err != nil { - log.Errorln(err) - time.Sleep(2 * time.Second) - - db = pg.Connect(pgOptions) - if err := db.Ping(ctx); err == nil { - log.Info("successfully connected to postgres database...") - return db - } - - log.Panicf("Postgres connection error %+v\n", err) - } - - log.Info("Connection to postgres verified...") - return db -} diff --git a/go.mod b/go.mod index 500469a..40c2001 100644 --- a/go.mod +++ b/go.mod @@ -10,13 +10,11 @@ require ( github.com/golang/protobuf v1.5.1 // indirect github.com/json-iterator/go v1.1.10 // indirect github.com/kelseyhightower/envconfig v1.4.0 + github.com/laironacosta/kit-go v1.0.0 github.com/leodido/go-urn v1.2.1 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.1 // indirect - github.com/onsi/ginkgo v1.15.0 // indirect - github.com/onsi/gomega v1.10.5 // indirect github.com/pkg/errors v0.9.1 - github.com/sirupsen/logrus v1.8.1 github.com/ugorji/go v1.2.4 // indirect golang.org/x/sys v0.0.0-20210331175145-43e1dd70ce54 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 9e600ac..dc90daf 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,12 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -30,6 +32,7 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+ github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-redis/redis/v8 v8.8.0/go.mod h1:F7resOH5Kdug49Otu24RjHWwgK7u9AmtqWMnCV1iP5Y= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -69,6 +72,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/laironacosta/kit-go v1.0.0 h1:+bFlswHVncrUqebYeWHep12TK8BQoR5A9eg2x5NRKJY= +github.com/laironacosta/kit-go v1.0.0/go.mod h1:mA4fEfgp/A2DTgnuWX2EHoeRXbqx7svaFqOt3MpYhsA= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= diff --git a/main.go b/main.go index 2e64633..b8ccdb0 100644 --- a/main.go +++ b/main.go @@ -5,8 +5,8 @@ import ( "github.com/gin-gonic/gin" "github.com/go-pg/pg/v10" "github.com/kelseyhightower/envconfig" + pgKit "github.com/laironacosta/kit-go/postgresql" "github.com/laironacosta/ms-gin-go/controllers" - "github.com/laironacosta/ms-gin-go/database" "github.com/laironacosta/ms-gin-go/migrations" repo "github.com/laironacosta/ms-gin-go/repository" "github.com/laironacosta/ms-gin-go/router" @@ -32,7 +32,7 @@ func main() { return } - db := database.NewPgDB(&pg.Options{ + db := pgKit.NewPgDB(&pg.Options{ Addr: fmt.Sprintf("%s:%d", cfg.DBHost, cfg.DBPort), User: cfg.DBUser, Password: cfg.DBPass, diff --git a/makefile b/makefile index 4dcc905..bd87ca1 100644 --- a/makefile +++ b/makefile @@ -3,7 +3,6 @@ run: stop up mod: # This make rule requires Go 1.11+ GO111MODULE=on go mod tidy - GO111MODULE=on go mod vendor up: docker-compose -f docker-compose.yml up -d --build