in internal/database/database.go [126:156]
func New(cfg config.DatabaseConfig) (*DB, error) {
var db *sql.DB
var err error
handler, ok := dialectHandlers[cfg.Dialect]
if !ok {
return nil, fmt.Errorf("unsupported dialect: %s", cfg.Dialect)
}
if strings.HasPrefix(cfg.Dialect, "cloudsql") && cfg.CloudSQLInstanceConnectionName != "" {
db, err = handler.CreateCloudSQLPool(cfg)
} else {
db, err = handler.CreateStandardPool(cfg)
}
if err != nil {
return nil, err
}
// Test the connection and setup pool
db, err = createPool(db)
if err != nil {
log.Println("ERROR: Failed to create connection pool:", err)
return nil, err
}
return &DB{
DB: db,
DialectHandler: handler,
}, nil
}