Base de datos

PostgreSQL en Abhackus

PostgreSQL es la fuente de verdad del proyecto: usuarios, perfiles, contabilidad, auditoría de aprobaciones, adjuntos con integridad y configuración operativa viven ahí de forma transaccional.

Qué es y por qué importa

  • Motor relacional robusto con consistencia ACID para operaciones contables.
  • Permite consultas auditables y reportes confiables por período/estado.
  • Escala bien para múltiples módulos activos (REST, CLI, TUI, web).
  • Soporta migraciones versionadas para evolucionar el modelo sin perder trazabilidad.

Cómo se usa en este proyecto

  • Conexión principal vía `DATABASE_URL` en backend REST y procesos operativos.
  • Migraciones SQL en `abhackus-dborm/migrations` para schema y cambios evolutivos.
  • Namespace `ops` para objetos operacionales (proyectos, adjuntos, notificaciones, etc.).
  • Las aprobaciones y rechazos quedan registrados con actor, razón y timestamp UTC.

Conexión recomendada

Usar parámetros genéricos y secretos fuera del repositorio.

export PGHOST=127.0.0.1
export PGPORT=5432
export PGUSER=app_user
export PGPASSWORD=app_password
export PGDATABASE=abhackus
export DATABASE_URL="postgres://$PGUSER:$PGPASSWORD@$PGHOST:$PGPORT/$PGDATABASE"

# Aplicar migraciones
make migrate

Relevancia para gobierno y comunidad

Un modelo relacional bien definido permite transparencia: cualquier cambio importante queda trazable, reproducible y verificable por admins y comunidad técnica.