2025-05-17 11:36:26 -04:00

128 lines
2.7 KiB
Go

package database
import (
"database/sql"
"fmt"
"daemonService/internal/config"
_ "github.com/lib/pq"
)
// InitDB inicializa la conexión a la base de datos y crea las tablas si no existen.
func InitDB(cfg config.Config) (*sql.DB, error) {
connStr := fmt.Sprintf(
"host=%s port=%d user=%s password=%s dbname=%s sslmode=%s",
cfg.Database.Host,
cfg.Database.Port,
cfg.Database.User,
cfg.Database.Password,
cfg.Database.DBName,
cfg.Database.SSLMode,
)
db, err := sql.Open("postgres", connStr)
if err != nil {
return nil, err
}
// Verificar la conexión
if err = db.Ping(); err != nil {
return nil, err
}
// Crear tabla para tipos de documento de identidad si no existe
//_, err = db.Exec(`
// CREATE TABLE IF NOT EXISTS tipo_documento_identidad (
// codigo VARCHAR(10) PRIMARY KEY,
// descripcion TEXT NOT NULL,
// fecha_actualizacion TIMESTAMP NOT NULL
// )
//`)
//if err != nil {
// return nil, err
//}
// Crear tabla para el log de sincronización
//_, err = db.Exec(`
// CREATE TABLE IF NOT EXISTS log_sincronizacion (
// id SERIAL PRIMARY KEY,
// servicio VARCHAR(50) NOT NULL,
// req_soap TEXT,
// resp_soap TEXT,
// req_json TEXT,
// resp_json TEXT,
// fecha TIMESTAMP NOT NULL
// )
//`)
//if err != nil {
// return nil, err
//}
return db, nil
}
// package db
// import (
// "database/sql"
// "fmt"
// "daemonService/internal/config"
// _ "github.com/lib/pq"
// )
// // Init inicializa la conexión a la base de datos y crea las tablas necesarias.
// func Init(cfg *config.Config) (*sql.DB, error) {
// connStr := fmt.Sprintf(
// "host=%s port=%d user=%s password=%s dbname=%s sslmode=%s",
// cfg.Database.Host,
// cfg.Database.Port,
// cfg.Database.User,
// cfg.Database.Password,
// cfg.Database.DBName,
// cfg.Database.SSLMode,
// )
// db, err := sql.Open("postgres", connStr)
// if err != nil {
// return nil, err
// }
// // Verificar la conexión
// if err = db.Ping(); err != nil {
// return nil, err
// }
// // Crear tabla para tipo de documento de identidad
// _, err = db.Exec(`
// CREATE TABLE IF NOT EXISTS tipo_documento_identidad (
// codigo VARCHAR(10) PRIMARY KEY,
// descripcion TEXT NOT NULL,
// fecha_actualizacion TIMESTAMP NOT NULL
// )
// `)
// if err != nil {
// return nil, err
// }
// // Crear tabla de log para auditoría
// _, err = db.Exec(`
// CREATE TABLE IF NOT EXISTS log_sincronizacion (
// id SERIAL PRIMARY KEY,
// servicio VARCHAR(50) NOT NULL,
// req_soap TEXT,
// resp_soap TEXT,
// req_json TEXT,
// resp_json TEXT,
// fecha TIMESTAMP NOT NULL
// )
// `)
// if err != nil {
// return nil, err
// }
// return db, nil
// }