Ir al contenido

CLI

Ciclo de vida de schema y comandos operativos

Sección titulada «Ciclo de vida de schema y comandos operativos»

El binario jsorm maneja inicialización, generación SQL, health checks y orquestación de migraciones.

Ventana de terminal
jsorm help

Bootstrap de proyecto:

Ventana de terminal
pnpm dlx @jsorm/core init
# o
npx -p @jsorm/core jsorm init

jsorm init ahora:

  1. Detecta si src/schema/ existe — solo pregunta la ruta de schema si falta.
  2. Genera archivos base de schema (solo si no existen).
  3. Recorre setup de bases/adaptadores en bucle (puedes agregar múltiples bases). Si jsorm.config.ts ya existe, las conexiones existentes se fusionan.
  4. Escribe jsorm.config.ts.
  5. Genera helpers runtime (db.ts por defecto, jsormdb.ts fallback cuando aplica).
  6. Verifica bootstrap y readiness de workers antes de finalizar.

Usa --no-migrations para omitir scaffolding de migraciones (sin .migrations/, sin config de migraciones).

Cuando jsorm.config.ts define defaults, no necesitas argumentos extra:

Ventana de terminal
jsorm db:check
jsorm migrate:status
jsorm migrate
jsorm migrate:up
jsorm migrate:down
jsorm table:create
jsorm table:create User
jsorm migrate:statement
jsorm migrate:statement initUsers
jsorm migrate:generate

Si no usas config-first:

Ventana de terminal
jsorm migrate ./dist/schema.js ormSource
jsorm migrate:up ./dist/schema.js ormSource
jsorm migrate:down ./dist/schema.js ormSource
jsorm migrate:status ./dist/schema.js ormSource
jsorm db:check ./dist/schema.js connectionSource
jsorm table:create ./dist/schema.js User
jsorm migrate:statement ./dist/schema.js initUsers
jsorm migrate:generate ./dist/schema.js generateSource

Compila primero:

Ventana de terminal
tsc && jsorm migrate:status ./dist/schema.js ormSource
ComandoSeguro en producciónNotas
migrate✅ SíSolo aplica pendientes
migrate:up✅ SíUn paso por vez
migrate:status✅ SíSolo lectura
db:check✅ SíSolo lectura
migrate:down⚠️ ProtegidoRequiere JSORM_ALLOW_UNSAFE_OPERATIONS=true
db:fresh❌ BloqueadoSolo desarrollo
db:rollback❌ BloqueadoSolo desarrollo
Ventana de terminal
jsorm migrate:generate

Flujo:

  1. Lee modelos desde config.
  2. Carga .migrations/schema.json.
  3. Construye diff AST.
  4. Clasifica cambios (safe, review_required, dangerous).
  5. Emite archivo de migración.
  6. Revisa antes de aplicar.

Si falta engine, la CLI se detiene con un mensaje accionable:

[JSORM ENGINE MISSING] Run: pnpx jsorm init

Usa ruta explícita en CI/contenedores:

Ventana de terminal
JSORM_ENGINE_PATH=/ruta/jsorm-engine jsorm migrate:status

Modo debug:

Ventana de terminal
JSORM_DEBUG=1 jsorm migrate:status
  1. Usa pnpm dlx @jsorm/core init en proyectos nuevos.
  2. Mantén db:check en verificación de deploy.
  3. Evita comandos destructivos en automatización de producción.
  4. Ejecuta migrate:status durante deploys.
  5. Prefiere arranque runtime explícito (start*Jsorm() o createJsorm().init()) en código de app.