You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
779 B

package database
import (
"database/sql"
"github.com/go-kratos/kratos/v2/log"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
type DatabaseConfig struct {
Driver string `yaml:"driver"`
DataSourceName string `yaml:"dataSourceName"`
}
type Config struct {
Database DatabaseConfig `yaml:"database"`
}
func InitDB(config *DatabaseConfig) {
var err error
switch config.Driver {
case "mysql":
db, err = sql.Open("mysql", config.DataSourceName)
default:
log.Errorf("Unsupported database driver: %s", config.Driver)
}
if err != nil {
log.Errorf("Failed to connect to database: %v", err)
}
err = db.Ping()
if err != nil {
log.Fatalf("Failed to ping database: %v", err)
}
log.Info("Connected to database")
}
func GetDB() *sql.DB {
return db
}