Skip to content
Usuario

Base de datos y migraciones

El backend usa Sequelize con dialect mysql y variables DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD.

ElementoValor observado
Drivermysql2
ORMsequelize
Dialectmysql
Conexionsrc/db/Sequelize.connection.js
SyncSequelize.sync({ force: false }) al arrancar

sync({ force:false }) no reemplaza una estrategia formal de migraciones. No asumas que el arranque del backend aplica todos los cambios productivos necesarios.

Crear un usuario dedicado, sin permisos administrativos globales:

CREATE USER 'medsync_app'@'%' IDENTIFIED BY '<generated-secret>';
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE
ON medsync_prod.*
TO 'medsync_app'@'%';
FLUSH PRIVILEGES;

Ajusta host y privilegios segun arquitectura real. No uses root ni cuentas personales.

No hay comando npm run migrate observado. Existen scripts SQL manuales en hemia-assistance-back-legacy\Scripts_, por ejemplo:

ArchivoUso
business_license_overrides_migration.sqlLicenciamiento/overrides.
business_saas_lifecycle_migration.sqlEstados SaaS/trials.
create_admin_audit_log.sqlAuditoria administrativa.
document_signature_requests_migration.sqlSolicitudes de firma documental.
document_signature_requests_rollback.sqlRollback de firma documental.

Antes de produccion, DBA/infra debe mantener una bitacora de migraciones aplicadas por ambiente.

  1. Congelar version backend/frontend a desplegar.
  2. Leer SQL pendiente y confirmar que aplica al schema actual.
  3. Tomar backup completo antes de tocar DB.
  4. Ejecutar migracion en staging/preproduccion.
  5. Ejecutar smoke tests backend y frontend.
  6. Preparar rollback SQL si aplica.
  7. Ejecutar en produccion durante ventana aprobada.
  8. Registrar fecha, responsable, hash/commit, script aplicado y resultado.

Los scripts QA de autenticacion usan fixtures ficticios con prefijo QA_D2_*. Ese prefijo es un nombre tecnico interno de los fixtures. No se deben crear fixtures contra produccion.

ScriptUso seguro
scripts/qa/d2-browser-qa-fixtures.jsSolo DB de prueba con flags ALLOW_D2_QA_DB=1 y ALLOW_D2_BROWSER_QA_FIXTURES=1.
scripts/qa/d2-cookie-auth-db-integration.jsIntegracion DB con cleanup automatico en entorno controlado.
scripts/qa/auth-final-regression.jsRegression auth con fixtures ficticios.

No uses datos reales de pacientes, doctores, tenants o credenciales humanas para QA.

Backups minimos:

  • Full backup diario cifrado.
  • Binlogs o incremental segun RPO.
  • Retencion separada por ambiente.
  • Prueba de restore periodica.
  • Almacenamiento fuera del mismo host de DB.
  • Acceso restringido y auditado.

Checklist post-restore:

  • Confirmar schema y conteos basicos.
  • Rotar o revocar sesiones si el restore retrocede estado auth.
  • Validar session, refresh_token, usuarios y tenants.
  • Ejecutar smoke tests de login, session, logout y Super Admin close.
  • Verificar que no se restauraron fixtures QA activos.
  • Confirmar que backups restaurados no contienen secretos en ubicaciones no cifradas.

Un restore puede revivir sesiones o refresh tokens que ya habian sido revocados despues del punto de backup. Si hay duda:

  • Revocar sesiones activas.
  • Revocar familias refresh afectadas.
  • Forzar re-login.
  • Rotar secretos si el incidente involucra exposicion de DB o backups.