Removes calls to log.Fatal, adds check for null store
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
This commit is contained in:
parent
e77d3c4d5e
commit
cd7f919eb2
13
main.go
13
main.go
@ -14,7 +14,7 @@ func main() {
|
|||||||
// Config
|
// Config
|
||||||
conf, err := config.GetConf("config")
|
conf, err := config.GetConf("config")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not get config", err)
|
log.Println("Could not get config", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -25,23 +25,24 @@ func main() {
|
|||||||
// DB
|
// DB
|
||||||
store, err := store.GetStore(&conf.Db)
|
store, err := store.GetStore(&conf.Db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not get store", err)
|
log.Println("Could not get store", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if store != nil {
|
if store != nil {
|
||||||
log.Print("Got DB connection")
|
log.Println("Got DB connection")
|
||||||
}
|
}
|
||||||
m := models.New(store)
|
m := models.New(store)
|
||||||
if m != nil {
|
if m != nil {
|
||||||
log.Print("created model")
|
log.Println("created model")
|
||||||
}
|
}
|
||||||
|
|
||||||
router := routes.NewRouter(m)
|
router := routes.NewRouter(m)
|
||||||
|
|
||||||
log.Print("Running server on " + port)
|
log.Println("Running server on " + port)
|
||||||
|
|
||||||
http.ListenAndServe(":"+port, router)
|
http.ListenAndServe(":"+port, router)
|
||||||
|
|
||||||
log.Print("App environment is " + env)
|
log.Println("App environment is " + env)
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
// Store represents the backing store.
|
// Store represents the backing store.
|
||||||
type Store interface {
|
type Store interface {
|
||||||
ConnectionLive() error
|
ConnectionLive() error
|
||||||
@ -24,5 +28,8 @@ func New(store Store) *Model {
|
|||||||
// Healthy returns an error if the connection is healthy.
|
// Healthy returns an error if the connection is healthy.
|
||||||
// Wrapper over db.Ping()
|
// Wrapper over db.Ping()
|
||||||
func (m *Model) Healthy() error {
|
func (m *Model) Healthy() error {
|
||||||
|
if m.Store == nil {
|
||||||
|
return fmt.Errorf("No store available")
|
||||||
|
}
|
||||||
return m.ConnectionLive()
|
return m.ConnectionLive()
|
||||||
}
|
}
|
||||||
|
@ -100,3 +100,12 @@ func TestModelHealthy(t *testing.T) {
|
|||||||
err := m.Healthy()
|
err := m.Healthy()
|
||||||
assert.Nil(err)
|
assert.Nil(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNilModelUnhealthy(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
m := models.New(nil)
|
||||||
|
|
||||||
|
err := m.Healthy()
|
||||||
|
assert.NotNil(err)
|
||||||
|
}
|
||||||
|
@ -40,30 +40,30 @@ func createPostgresDB(dbConf *config.DBConfig) (*sqlx.DB, error) {
|
|||||||
|
|
||||||
tmp, err := sql.Open("pgx", connStr)
|
tmp, err := sql.Open("pgx", connStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not connect to database: \n", err)
|
log.Print("Could not connect to database: \n", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
db := sqlx.NewDb(tmp, "pgx")
|
db := sqlx.NewDb(tmp, "pgx")
|
||||||
if err := db.Ping(); err != nil {
|
if err := db.Ping(); err != nil {
|
||||||
log.Fatal("database ping failed\n", err)
|
log.Print("database ping failed\n", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
driver, err := postgres.WithInstance(db.DB, &postgres.Config{})
|
driver, err := postgres.WithInstance(db.DB, &postgres.Config{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not create driver for db migration", err)
|
log.Print("Could not create driver for db migration", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
m, err := migrate.NewWithDatabaseInstance("file://store/migrations", "postgres", driver)
|
m, err := migrate.NewWithDatabaseInstance("file://store/migrations", "postgres", driver)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not perform migration", err)
|
log.Print("Could not perform migration", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := m.Up(); err != nil {
|
if err := m.Up(); err != nil {
|
||||||
if err == migrate.ErrNoChange {
|
if err == migrate.ErrNoChange {
|
||||||
log.Print("No migration needed.")
|
log.Print("No migration needed.")
|
||||||
} else {
|
} else {
|
||||||
log.Fatalf("An error occurred while syncing the database.. %v", err)
|
log.Printf("An error occurred while syncing the database.. %v", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user