- Created SQL script to set up database tables for projects and technologies. - Added Docker Compose configuration for application and MySQL service. - Implemented API endpoints for CRUD operations on technologies. - Defined data types for projects and technologies. - Established routing for API endpoints.
38 lines
697 B
Go
38 lines
697 B
Go
package bd
|
|
|
|
import (
|
|
"database/sql"
|
|
"log"
|
|
"os"
|
|
"github.com/go-sql-driver/mysql"
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
var db *sql.DB
|
|
|
|
func GetDB() *sql.DB {
|
|
|
|
if db == nil {
|
|
errenv := godotenv.Load()
|
|
if errenv != nil {
|
|
log.Println("No .env file found; using environment variables")
|
|
}
|
|
// Capture connection properties.
|
|
cfg := mysql.NewConfig()
|
|
cfg.User = os.Getenv("DB_USER")
|
|
cfg.Passwd = os.Getenv("DB_PASS")
|
|
cfg.Net = "tcp"
|
|
cfg.Addr = os.Getenv("DB_HOST")
|
|
cfg.DBName = os.Getenv("DB_NAME")
|
|
|
|
// Get a database handle.
|
|
var err error
|
|
db, err = sql.Open("mysql", cfg.FormatDSN())
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
}
|
|
return db
|
|
}
|