CLI
Schema lifecycle and operational commands
Section titled “Schema lifecycle and operational commands”The jsorm binary handles initialization, SQL generation, health checks, and migration orchestration.
jsorm helpInitialization
Section titled “Initialization”Bootstrap a project with:
pnpm dlx @jsorm/core init# ornpx -p @jsorm/core jsorm initjsorm init now:
- Detects whether
src/schema/exists — prompts for schema path only when missing. - Generates starter schema files (only if they don’t exist).
- Loops database/adapters setup (you can add multiple databases). If a
jsorm.config.tsalready exists, existing connections are merged in. - Writes
jsorm.config.ts. - Generates runtime helpers (
db.tsby default,jsormdb.tsfallback when needed). - Verifies bootstrap and worker readiness before success output.
Use --no-migrations to skip migration scaffolding (no .migrations/, no migrations config).
Config-first mode
Section titled “Config-first mode”When jsorm.config.ts defines defaults, commands need no extra arguments:
jsorm db:checkjsorm migrate:statusjsorm migratejsorm migrate:upjsorm migrate:downjsorm table:createjsorm table:create Userjsorm migrate:statementjsorm migrate:statement initUsersjsorm migrate:generateModule-export mode (legacy fallback)
Section titled “Module-export mode (legacy fallback)”If not using config-first:
jsorm migrate ./dist/schema.js ormSourcejsorm migrate:up ./dist/schema.js ormSourcejsorm migrate:down ./dist/schema.js ormSourcejsorm migrate:status ./dist/schema.js ormSourcejsorm db:check ./dist/schema.js connectionSourcejsorm table:create ./dist/schema.js Userjsorm migrate:statement ./dist/schema.js initUsersjsorm migrate:generate ./dist/schema.js generateSourceCompile first:
tsc && jsorm migrate:status ./dist/schema.js ormSourceEnvironment safety
Section titled “Environment safety”| Command | Safe in production | Notes |
|---|---|---|
migrate | ✅ Yes | Applies pending migrations only |
migrate:up | ✅ Yes | One step at a time |
migrate:status | ✅ Yes | Read-only |
db:check | ✅ Yes | Read-only |
migrate:down | ⚠️ Guarded | Requires JSORM_ALLOW_UNSAFE_OPERATIONS=true |
db:fresh | ❌ Blocked | Development only |
db:rollback | ❌ Blocked | Development only |
migrate:generate
Section titled “migrate:generate”jsorm migrate:generateFlow:
- Read models from config.
- Load
.migrations/schema.json. - Build AST diff.
- Classify changes (
safe,review_required,dangerous). - Emit migration file.
- Review before applying.
Engine and debug
Section titled “Engine and debug”If the engine is missing, CLI stops with explicit action hints:
[JSORM ENGINE MISSING] Run: pnpx jsorm initUse explicit path in CI/container environments:
JSORM_ENGINE_PATH=/path/to/jsorm-engine jsorm migrate:statusDebug mode:
JSORM_DEBUG=1 jsorm migrate:statusBest practices
Section titled “Best practices”- Use
pnpm dlx @jsorm/core initfor new projects. - Keep
db:checkin deploy verification. - Keep destructive commands out of production automation.
- Run
migrate:statusduring deployments. - Prefer explicit runtime startup (
start*Jsorm()orcreateJsorm().init()) in app code.