Skip to main content
PsicoScan ML usa PostgreSQL como base de datos relacional, gestionada con Prisma ORM (v7.4). El esquema define los modelos del dominio clínico y el corpus de entrenamiento ML.

Opciones de base de datos

1

Crear un proyecto

Ve a supabase.com, crea una cuenta y luego un nuevo proyecto. Elige la región más cercana a tus usuarios.
2

Obtener la cadena de conexión

En el panel de tu proyecto: Settings → Database → Connection string → URI.Copia la URL y úsala como valor de DATABASE_URL en tu archivo .env. Asegúrate de reemplazar [YOUR-PASSWORD] con la contraseña del proyecto.
DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.<ref>.supabase.co:5432/postgres?sslmode=require"
3

Continuar con las migraciones

Con DATABASE_URL configurado, sigue los pasos de migración de la sección siguiente.

Configurar Prisma y ejecutar migraciones

1

Instalar dependencias

Si aún no lo has hecho, instala los paquetes npm desde la raíz del repositorio:
npm install
2

Generar el cliente Prisma

Este comando lee prisma/schema.prisma y genera el cliente TypeScript tipado en node_modules/@prisma/client:
npx prisma generate
Debes volver a ejecutarlo cada vez que modifiques el schema.
3

Sincronizar el esquema con la base de datos

Aplica el esquema directamente sin crear archivos de migración. Útil durante el desarrollo activo:
npx prisma db push
4

Poblar la base de datos con datos de prueba

El seed crea 3 usuarios de prueba y 5 estudiantes con sus tamizajes completos (uno por cada tipo de caso SENA):
npx prisma db seed
El comando equivalente interno (definido en package.json) es:
ts-node --compiler-options {"module":"CommonJS"} prisma/seed.ts

Modelos del esquema

El archivo prisma/schema.prisma define los siguientes modelos principales:
ModeloDescripción
UsuarioCuentas de acceso con roles: ESTUDIANTE, PSICOLOGO, ORIENTADOR, DIRECTOR, ADMIN
EstudianteDatos del alumno: CURP, nombre, edad, sexo, grado, grupo, escuela
TamizajeResultado completo de un SENA: las 31 escalas en puntuación T, tipoCaso, semaforo e itemsCriticos
ExpedienteClinicoExpediente psicológico individual: motivo de consulta, antecedentes, diagnóstico preliminar y plan de intervención
HistoricoSENACorpus de tamizajes históricos para entrenamiento del modelo Random Forest
EntrenamientoMLRegistro de cada entrenamiento: accuracy, CV mean/std, importancia de variables y reporte por clase
El datasource está configurado para PostgreSQL:
datasource db {
  provider = "postgresql"
}

Nota sobre el adaptador Neon / Supabase

El proyecto usa @neondatabase/serverless y @prisma/adapter-neon para conectarse a Supabase o Neon PostgreSQL a través de HTTP en entornos serverless (Vercel Edge, funciones sin conexión TCP persistente). El cliente Prisma se inicializa con el adaptador en lib/db.ts. Si usas un servidor PostgreSQL estándar con conexión TCP directa, el adaptador @prisma/adapter-pg también está disponible en el proyecto.

Build docs developers (and LLMs) love