feat: Update database models and DTOs to use bytea for ULIDWrapper and add JWT configuration to environment

This commit is contained in:
2025-03-11 23:11:49 +00:00
parent c08da6fc92
commit 9057adebdd
19 changed files with 315 additions and 327 deletions
+38 -2
View File
@@ -1,6 +1,7 @@
package main
import (
"flag"
"fmt"
"log"
"os"
@@ -12,6 +13,11 @@ import (
func main() {
// Parse command line flags
verbose := false
dropDB := flag.Bool("drop_db", false, "Drop the database before migrating")
createDB := flag.Bool("create_db", false, "Create the database if it doesn't exist")
flag.Parse()
for _, arg := range os.Args[1:] {
if arg == "--verbose" || arg == "-v" {
verbose = true
@@ -53,7 +59,37 @@ func main() {
// Initialize database
fmt.Println("Connecting to database...")
if err := models.InitDB(dbConfig); err != nil {
var err error
gormDB, err := models.GetGormDB(dbConfig, "postgres")
if err != nil {
log.Fatalf("Error getting gorm DB: %v", err)
}
sqlDB, err := gormDB.DB()
if err != nil {
log.Fatalf("Error getting sql DB: %v", err)
}
if *dropDB {
fmt.Printf("Dropping database %s...\n", dbConfig.DBName)
_, err = sqlDB.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", dbConfig.DBName))
if err != nil {
log.Fatalf("Error dropping database %s: %v", dbConfig.DBName, err)
}
fmt.Printf("✓ Database %s dropped successfully\n", dbConfig.DBName)
}
if *createDB {
fmt.Printf("Creating database %s...\n", dbConfig.DBName)
_, err = sqlDB.Exec(fmt.Sprintf("CREATE DATABASE %s", dbConfig.DBName))
if err != nil {
log.Fatalf("Error creating database %s: %v", dbConfig.DBName, err)
}
fmt.Printf("✓ Database %s created successfully\n", dbConfig.DBName)
}
if err = models.InitDB(dbConfig); err != nil {
log.Fatalf("Error initializing database: %v", err)
}
defer func() {
@@ -65,7 +101,7 @@ func main() {
// Run migrations
fmt.Println("Running database migrations...")
if err := models.MigrateDB(); err != nil {
if err = models.MigrateDB(); err != nil {
log.Fatalf("Error migrating database: %v", err)
}
fmt.Println("✓ Database migrations completed successfully")