shad-go/lectures/07-sql/hasql/open.go
2022-02-17 13:09:14 +03:00

34 lines
661 B
Go

package hasql
import (
"log"
_ "github.com/jackc/pgx/v4/stdlib"
"golang.yandex/hasql"
"golang.yandex/hasql/checkers"
)
func Open() {
dbFoo, _ := sql.Open("pgx", "host=foo")
dbBar, _ := sql.Open("pgx", "host=bar")
cluster, err := hasql.NewCluster(
[]hasql.Node{hasql.NewNode("foo", dbFoo), hasql.NewNode("bar", dbBar)},
checkers.PostgreSQL,
)
if err != nil {
log.Fatal(err)
}
node := cluster.Primary()
if err == nil {
log.Fatal(err)
}
log.Println("Node address", node.Addr)
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
if err = node.DB().PingContext(ctx); err != nil {
log.Fatal(err)
}
}