upgrade from go-pg to bun

This commit is contained in:
dhax 2024-08-31 18:57:54 +02:00
parent f59f129354
commit 1886be62bc
23 changed files with 415 additions and 385 deletions

View file

@ -2,54 +2,42 @@
package database
import (
"log"
"context"
"database/sql"
"github.com/spf13/viper"
"github.com/go-pg/pg"
"github.com/uptrace/bun"
"github.com/uptrace/bun/dialect/pgdialect"
"github.com/uptrace/bun/driver/pgdriver"
"github.com/uptrace/bun/extra/bundebug"
)
// DBConn returns a postgres connection pool.
func DBConn() (*pg.DB, error) {
func DBConn() (*bun.DB, error) {
viper.SetDefault("db_network", "tcp")
viper.SetDefault("db_addr", "localhost:5432")
viper.SetDefault("db_user", "postgres")
viper.SetDefault("db_password", "postgres")
viper.SetDefault("db_database", "postgres")
db := pg.Connect(&pg.Options{
Network: viper.GetString("db_network"),
Addr: viper.GetString("db_addr"),
User: viper.GetString("db_user"),
Password: viper.GetString("db_password"),
Database: viper.GetString("db_database"),
})
dsn := "postgres://" + viper.GetString("db_user") + ":" + viper.GetString("db_password") + "@" + viper.GetString("db_addr") + "/" + viper.GetString("db_database") + "?sslmode=disable"
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(dsn)))
db := bun.NewDB(sqldb, pgdialect.New())
if err := checkConn(db); err != nil {
return nil, err
}
if viper.GetBool("db_debug") {
db.AddQueryHook(&logSQL{})
db.AddQueryHook(bundebug.NewQueryHook(bundebug.WithVerbose(true)))
}
return db, nil
}
type logSQL struct{}
func (l *logSQL) BeforeQuery(e *pg.QueryEvent) {}
func (l *logSQL) AfterQuery(e *pg.QueryEvent) {
query, err := e.FormattedQuery()
if err != nil {
panic(err)
}
log.Println(query)
}
func checkConn(db *pg.DB) error {
func checkConn(db *bun.DB) error {
var n int
_, err := db.QueryOne(pg.Scan(&n), "SELECT 1")
return err
return db.NewSelect().ColumnExpr("1").Scan(context.Background(), &n)
}