anotherway.txt 807 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package db
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "gorm.io/driver/mysql"
  7. "gorm.io/gorm"
  8. )
  9. func getDSN() string {
  10. return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
  11. os.Getenv("DB_USER"),
  12. os.Getenv("DB_PASSWORD"),
  13. os.Getenv("DB_HOST"),
  14. os.Getenv("DB_PORT"),
  15. os.Getenv("DB_NAME"),
  16. )
  17. }
  18. var DB *gorm.DB
  19. func DBConnection() {
  20. var err error
  21. DSN := getDSN()
  22. DB, err = gorm.Open(mysql.Open(DSN), &gorm.Config{})
  23. if err != nil {
  24. log.Printf("Error al conectar a la base de datos: %v", err)
  25. return // Manejar el error adecuadamente
  26. }
  27. log.Println("DB connected")
  28. }
  29. // AutoMigrate realiza la migración de los modelos
  30. func AutoMigrate(models ...interface{}) {
  31. err := DB.AutoMigrate(models...)
  32. if err != nil {
  33. log.Fatal("Error al realizar la migration:", err)
  34. }
  35. }