fix(db): use a normal pgx.Conn first

This commit is contained in:
Muyao CHEN
2024-10-06 13:33:40 +02:00
parent 43a1d0509c
commit 2c1beb30f6
3 changed files with 19 additions and 17 deletions

View File

@ -37,6 +37,7 @@ import (
"git.vinchent.xyz/vinchent/howmuch/internal/pkg/log"
"git.vinchent.xyz/vinchent/howmuch/pkg/version/verflag"
"github.com/gin-gonic/gin"
"github.com/jackc/pgx/v5"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"golang.org/x/net/context"
@ -105,24 +106,27 @@ func run() error {
}
// Init DB
dbPool, err := datastore.NewDB(
fmt.Sprintf(
"host=%s port=%d dbname=%s user=%s password=%s sslmode=%s",
viper.GetString("db.host"),
viper.GetInt("db.port"),
viper.GetString("db.database"),
viper.GetString("db.username"),
viper.GetString("db.password"),
viper.GetString("db.sslmode"),
),
dbConfString := fmt.Sprintf(
"host=%s port=%d dbname=%s user=%s password=%s sslmode=%s",
viper.GetString("db.host"),
viper.GetInt("db.port"),
viper.GetString("db.database"),
viper.GetString("db.username"),
viper.GetString("db.password"),
viper.GetString("db.sslmode"),
)
dbConf, err := pgx.ParseConfig(dbConfString)
if err != nil {
log.FatalLog("DB connection config failure", "err", err, "cfg string", dbConfString)
}
dbConn, err := datastore.NewDB(dbConf)
if err != nil {
log.FatalLog("DB connection failure", "err", err)
}
defer dbPool.Close()
defer dbConn.Close(context.Background())
// Register the core service
r := registry.NewRegistry(dbPool)
r := registry.NewRegistry(dbConn)
engine := gin.Default()

View File

@ -25,12 +25,12 @@ package datastore
import (
"context"
"github.com/jackc/pgx/v5/pgxpool"
"github.com/jackc/pgx/v5"
)
// NewDB creates a new database for the application
func NewDB(dsn string) (*pgxpool.Pool, error) {
conn, err := pgxpool.New(context.Background(), dsn)
func NewDB(connConfig *pgx.ConnConfig) (*pgx.Conn, error) {
conn, err := pgx.ConnectConfig(context.Background(), connConfig)
if err != nil {
return nil, err
}