upgrade from go-pg to bun
This commit is contained in:
parent
f59f129354
commit
1886be62bc
23 changed files with 415 additions and 385 deletions
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue