Skip to content

Commit 751cbfc

Browse files
committed
Wait until database is up | More logs
1 parent f09db25 commit 751cbfc

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
115115
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
116116
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
117117
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
118-
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
119-
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
120118
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
121119
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
122120
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=

hasura/hasura.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ const (
2323
func Create(hasura config.Hasura, cfg config.Database, views []string, models ...interface{}) error {
2424
api := New(hasura.URL, hasura.Secret)
2525

26-
log.Info("Waiting hasura is up...")
26+
log.Info("Waiting hasura is up and running")
2727
for err := api.Health(); err != nil; err = api.Health() {
28-
time.Sleep(time.Second * 10)
28+
log.Warn(err)
29+
time.Sleep(time.Second)
2930
}
3031

3132
metadata, err := Generate(hasura, cfg, models...)
@@ -60,7 +61,7 @@ func Create(hasura config.Hasura, cfg config.Database, views []string, models ..
6061
return err
6162
}
6263

63-
if hasura.Rest == nil || *hasura.Rest {
64+
if len(metadata.QueryCollections) > 0 && (hasura.Rest == nil || *hasura.Rest) {
6465
log.Info("Creating REST endpoints...")
6566
for _, query := range metadata.QueryCollections[0].Definition.Queries {
6667
if err := api.CreateRestEndpoint(query.Name, query.Name, query.Name, allowedQueries); err != nil {

state/db.go

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,28 @@ import (
88

99
"github.com/dipdup-net/go-lib/config"
1010
"github.com/pkg/errors"
11+
"github.com/sirupsen/logrus"
1112
"gorm.io/driver/mysql"
1213
"gorm.io/driver/postgres"
1314
"gorm.io/driver/sqlite"
1415
"gorm.io/gorm"
1516
"gorm.io/gorm/logger"
1617
)
1718

19+
// CheckConnection
20+
func CheckConnection(db *gorm.DB) error {
21+
sql, err := db.DB()
22+
if err != nil {
23+
return err
24+
}
25+
26+
if err = sql.Ping(); err != nil {
27+
return err
28+
}
29+
30+
return nil
31+
}
32+
1833
// OpenConnection -
1934
func OpenConnection(cfg config.Database) (*gorm.DB, error) {
2035
var dialector gorm.Dialector
@@ -58,14 +73,10 @@ func OpenConnection(cfg config.Database) (*gorm.DB, error) {
5873
return nil, err
5974
}
6075

61-
sql, err := db.DB()
62-
if err != nil {
63-
return nil, err
64-
}
65-
66-
if err = sql.Ping(); err != nil {
67-
sql.Close()
68-
return nil, err
76+
logrus.Info("Waiting database is up and runnning")
77+
for err := CheckConnection(db); err != nil; err = CheckConnection(db) {
78+
logrus.Warn("%v", err)
79+
time.Sleep(time.Second)
6980
}
7081

7182
return db, nil

tzkt/api/api.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package api
22

33
import (
4+
"fmt"
45
"io/ioutil"
56
"net/http"
67
"net/url"
@@ -59,7 +60,7 @@ func (tzkt *API) json(endpoint string, args map[string]string, output interface{
5960
return json.NewDecoder(resp.Body).Decode(output)
6061
}
6162

62-
return errors.New(resp.Status)
63+
return errors.New(fmt.Sprintf("%s: %s %v", resp.Status, endpoint, args))
6364
}
6465

6566
func (tzkt *API) count(endpoint string) (uint64, error) {

0 commit comments

Comments
 (0)