ixiclinicDocs
DesarrolladoresBase de datos

Base de datos

Visión general de la capa de datos de ixiclinic — Drizzle ORM sobre PostgreSQL, los dos entornos (desarrollo y producción) y el mapa de subpáginas.

La persistencia de ixiclinic vive enteramente en apps/api. Es la única pieza del monorepo con acceso a la base de datos: todas las apps cliente (admin, console, portal, lab-site, landing, mobile) hablan con el API REST, nunca directamente con PostgreSQL.

Stack

  • PostgreSQL como motor relacional.
  • Drizzle ORM (drizzle-orm) para el esquema y las consultas, tipado en TypeScript.
  • Drizzle Kit (drizzle-kit) para generar y aplicar migraciones.
  • postgres-js (postgres) como driver de bajo nivel.

El esquema se declara en apps/api/src/db/schema/ (un archivo por dominio) y la instancia de conexión se exporta desde apps/api/src/db/index.ts como db.

Dos entornos

ixiclinic trabaja con dos bases de datos distintas que deben mantenerse en paralelo:

EntornoMotorDónde
DesarrolloNeon Serverless PostgreSQLNube (Neon), por desarrollador
ProducciónPostgreSQL 17 en DockerEl VPS de despliegue

Nota: Todo cambio de esquema debe aplicarse a ambas bases. En desarrollo se aplica con los comandos db:*; en producción la migración se ejecuta automáticamente al arrancar el contenedor del API. Ver Neon vs Docker.

En esta sección

  • Drizzle ORM — configuración, los comandos db:* y Drizzle Studio.
  • Migraciones — flujo generate → migrate, la migración en arranque, la función NCF y el riesgo de drift.
  • Neon vs Docker — diferencias entre los entornos de desarrollo y producción.
  • Dominios del esquema — qué contiene cada archivo de src/db/schema/.

On this page