feat: Initialize project with MySQL database and API for managing projects and technologies

- 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.
This commit is contained in:
2026-02-10 09:45:25 +01:00
parent 4335fd5cae
commit 4b5069d179
16 changed files with 615 additions and 178 deletions
+37 -38
View File
@@ -1,38 +1,37 @@
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.Fatal("Error loading .env file")
}
// 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
}
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
}