128 lines
2.7 KiB
Go
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
|
|
// }
|