This commit is contained in:
2025-03-31 19:07:30 +00:00
parent 21c9233058
commit fcdeedf7e9
21 changed files with 634 additions and 168 deletions
+6 -4
View File
@@ -7,6 +7,8 @@ import (
"log"
"time"
"github.com/timetracker/backend/internal/config"
"github.com/timetracker/backend/internal/db"
"github.com/timetracker/backend/internal/models"
)
@@ -15,15 +17,15 @@ func main() {
flag.Parse()
// Get database configuration with sensible defaults
dbConfig := models.DefaultDatabaseConfig()
dbConfig := config.DefaultDatabaseConfig()
// Initialize database
fmt.Println("Connecting to database...")
if err := models.InitDB(dbConfig); err != nil {
if err := db.InitDB(dbConfig); err != nil {
log.Fatalf("Error initializing database: %v", err)
}
defer func() {
if err := models.CloseDB(); err != nil {
if err := db.CloseDB(); err != nil {
log.Printf("Error closing database connection: %v", err)
}
}()
@@ -34,7 +36,7 @@ func main() {
defer cancel()
// Get the database engine
db := models.GetEngine(ctx)
db := db.GetEngine(ctx)
// Test database connection with a simple query
var result int
+7 -6
View File
@@ -6,7 +6,8 @@ import (
"log"
"os"
"github.com/timetracker/backend/internal/models"
"github.com/timetracker/backend/internal/config"
"github.com/timetracker/backend/internal/db"
"gorm.io/gorm/logger"
)
@@ -29,7 +30,7 @@ func main() {
}
// Get database configuration with sensible defaults
dbConfig := models.DefaultDatabaseConfig()
dbConfig := config.DefaultDatabaseConfig()
// Override with environment variables if provided
if host := os.Getenv("DB_HOST"); host != "" {
@@ -62,7 +63,7 @@ func main() {
var err error
gormDB, err := models.GetGormDB(dbConfig, "postgres")
gormDB, err := db.GetGormDB(dbConfig, "postgres")
if err != nil {
log.Fatalf("Error getting gorm DB: %v", err)
}
@@ -89,11 +90,11 @@ func main() {
fmt.Printf("✓ Database %s created successfully\n", dbConfig.DBName)
}
if err = models.InitDB(dbConfig); err != nil {
if err = db.InitDB(dbConfig); err != nil {
log.Fatalf("Error initializing database: %v", err)
}
defer func() {
if err := models.CloseDB(); err != nil {
if err := db.CloseDB(); err != nil {
log.Printf("Error closing database connection: %v", err)
}
}()
@@ -101,7 +102,7 @@ func main() {
// Run migrations
fmt.Println("Running database migrations...")
if err = models.MigrateDB(); err != nil {
if err = db.MigrateDB(); err != nil {
log.Fatalf("Error migrating database: %v", err)
}
fmt.Println("✓ Database migrations completed successfully")
+5 -3
View File
@@ -7,21 +7,23 @@ import (
"time"
"github.com/oklog/ulid/v2"
"github.com/timetracker/backend/internal/config"
"github.com/timetracker/backend/internal/db"
"github.com/timetracker/backend/internal/models"
"github.com/timetracker/backend/internal/types"
)
func main() {
// Get database configuration with sensible defaults
dbConfig := models.DefaultDatabaseConfig()
dbConfig := config.DefaultDatabaseConfig()
// Initialize database
fmt.Println("Connecting to database...")
if err := models.InitDB(dbConfig); err != nil {
if err := db.InitDB(dbConfig); err != nil {
log.Fatalf("Error initializing database: %v", err)
}
defer func() {
if err := models.CloseDB(); err != nil {
if err := db.CloseDB(); err != nil {
log.Printf("Error closing database connection: %v", err)
}
}()
+5 -4
View File
@@ -7,6 +7,7 @@ import (
"log"
"github.com/timetracker/backend/internal/config"
"github.com/timetracker/backend/internal/db"
"github.com/timetracker/backend/internal/models"
"gorm.io/gorm"
)
@@ -23,11 +24,11 @@ func main() {
}
// Initialize database
if err := models.InitDB(cfg.Database); err != nil {
if err := db.InitDB(cfg.Database); err != nil {
log.Fatalf("Error initializing database: %v", err)
}
defer func() {
if err := models.CloseDB(); err != nil {
if err := db.CloseDB(); err != nil {
log.Printf("Error closing database connection: %v", err)
}
}()
@@ -44,7 +45,7 @@ func main() {
func seedDatabase(ctx context.Context) error {
// Check if seeding is needed
var count int64
if err := models.GetEngine(ctx).Model(&models.Company{}).Count(&count).Error; err != nil {
if err := db.GetEngine(ctx).Model(&models.Company{}).Count(&count).Error; err != nil {
return fmt.Errorf("error checking if seeding is needed: %w", err)
}
@@ -57,7 +58,7 @@ func seedDatabase(ctx context.Context) error {
log.Println("Seeding database with initial data...")
// Start transaction
return models.GetEngine(ctx).Transaction(func(tx *gorm.DB) error {
return db.GetEngine(ctx).Transaction(func(tx *gorm.DB) error {
// Create default company
defaultCompany := models.Company{
Name: "Default Company",