first commit

This commit is contained in:
“xHuPo” 2024-08-21 16:35:46 +08:00
commit 53e59ddf89
12 changed files with 558 additions and 0 deletions

49
database/database.go Normal file
View file

@ -0,0 +1,49 @@
package database
import (
_ "embed"
"log"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"github.com/spf13/viper"
_ "modernc.org/sqlite"
)
var (
//go:embed init/users.sql
userTable string
//go:embed init/otp.sql
otpTable string
)
func InitDB() (*sqlx.DB, error) {
driver := viper.GetString("database.driver")
dsn := viper.GetString("database.dsn")
db, err := sqlx.Open(driver, dsn)
if err != nil {
return nil, err
}
if err := db.Ping(); err != nil {
return nil, err
}
log.Println("Connected to database!")
return db, nil
}
func MigrateDB(db *sqlx.DB) error {
_, err := db.Exec(userTable)
if err != nil {
return err
}
_, err = db.Exec(otpTable)
if err != nil {
return err
}
return nil
}