feat(db): implement basic db

This commit is contained in:
2026-06-19 12:24:55 +02:00
parent d308c46b12
commit 3cf9e6f266
5 changed files with 67 additions and 1 deletions
+32 -1
View File
@@ -1 +1,32 @@
package cmd package main
import (
"flag"
"github.com/lib/pq"
"tomatentum.net/outfit-voting-abi26/internal/database"
)
var config pq.Config
func main() {
handleflag()
database.OpenDB(config)
defer database.CloseDB()
for {
}
}
func handleflag() {
config.SSLMode = pq.SSLModePrefer
flag.StringVar(&config.Host, "dbhost", "localhost", "Postgres host")
config.Port = uint16(*flag.Uint("dbport", 5432, "Postgres port"))
flag.StringVar(&config.Database, "dbname", "postgres", "Postgres db name")
flag.StringVar(&config.User, "dbuser", "postgres", "Postgres user")
flag.StringVar(&config.Password, "dbpass", "", "Postgres password")
flag.Parse()
}
+2
View File
@@ -1,3 +1,5 @@
module tomatentum.net/outfit-voting-abi26 module tomatentum.net/outfit-voting-abi26
go 1.25.5 go 1.25.5
require github.com/lib/pq v1.12.3 // indirect
+2
View File
@@ -0,0 +1,2 @@
github.com/lib/pq v1.12.3 h1:tTWxr2YLKwIvK90ZXEw8GP7UFHtcbTtty8zsI+YjrfQ=
github.com/lib/pq v1.12.3/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
+31
View File
@@ -0,0 +1,31 @@
package database
import (
"database/sql"
"log"
"github.com/lib/pq"
)
var db *sql.DB
func OpenDB(conf pq.Config) {
connector, err := pq.NewConnectorConfig(conf)
if err != nil {
panic(err)
}
db = sql.OpenDB(connector)
if err := db.Ping(); err != nil {
panic(err)
}
log.Printf("Database opened to %s:%d, %s as %s!\n", conf.Host, conf.Port, conf.Database, conf.User)
}
func CloseDB() {
if err := db.Close(); err != nil {
panic(err)
}
}
View File