feat(db): implement basic db
This commit is contained in:
+32
-1
@@ -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()
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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=
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user