page:guides:nuxt:schema changes
Apply Database Schema Changes for Nuxt
Apply database schema changes for a Nuxt app on Ample with a release command. node migrate.cjs runs against the injected DATABASE_URL before the new release goes live, and the release fails instead of activating if the migration fails.
Summary
- Framework: Nuxt
- Workload: Apply database schema changes
- Release Status: Published
- Support Status: Verified
- Execution Status: Ready
Representative Queries
- Apply database schema changes for Nuxt
- Where can I host Apply database schema changes built with Nuxt?
- I need a framework-specific schema migration and rollback procedure; no managed migration service is assumed.
Resource Requirements
- Primitive: Compute
- Primitive: Postgres
Infrastructure Requirements
Compute
- Status: Verified
- Summary: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
Postgres
- Status: Verified
- Summary: Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.
Prerequisites
- A migration command that reads DATABASE_URL and exits non-zero on failure
- A PostgreSQL database (supplied or managed)
- An Ample account token with servers:write and databases:read
Input Schema
The input schema requires the following properties:
env: Encrypted environment variables as KEY=value; secret values are never stored in ample.toml.name: App name (lowercase, digits and dashes).path: Project directory to deploy, or one service name from ample.toml.release_command: One-off command run before the release goes live, for example a migration.size: VM size; omit to let Ample pick a runtime-safe size.start: Start command override when detection cannot infer it (Python apps pass one explicitly).
Workflow Steps
Write an idempotent migration
Create tables and markers with IF NOT EXISTS or a migration framework so a re-run is safe.Deploy with the release command
Ample runs the command before activation; a non-zero exit fails the release.
Command:ample deploy . --name <app_name> --public --release-command "node migrate.cjs"Verify the marker through the app
Serve a route (/api/migrated) that reads something only the migration creates.Verify
Fetch the live URL and run the success checks below. On failure read the build log, then the runtime log, fix the cause and deploy again; do not blind-retry.
Command:ample logs <app_name> --kind build
Examples
- Nuxt release-command canary
node migrate.cjsruns before activation against the auto-provisioned managed database.
Success Checks
- Migration marker is readable at
/api/migrated, expect:migrated=release-ok
Limitations
- Verified on the node-22 template at s-1vcpu-1gb; other templates and sizes are not verified by this recipe.
- Region, compliance attestations and request-duration limits are unknown and not claimed.
- Apps auto-pause when idle and wake on the next request; always-on is an operator setting, not a plan feature.
- Managed PostgreSQL 16 only; extensions, connection limits and backup or restore procedures are not verified.
- Apps and their managed databases are placed together; cross-node shared databases are unsupported.
- The release command runs once per release on the app VM; there is no separate migration runner or rollback of a partially applied migration.
Cost Estimate
- Currency: USD
- Monthly Amount: $10.00
- Note: Apps and managed databases auto-pause when idle; the estimate is the always-on monthly price of the tested sizes. Plan quotas and budgets apply.
Evidence Summary
- Kind: Canary Run
- Summary: The same Nuxt app deployed with --release-command
node migrate.cjs; /api/migrated reported the marker the migration created. - Observed At: 2026-09-20T01:42:25Z
- Summary: The same Nuxt app deployed with --release-command
Next Actions
- Browse the catalog index
Action ID:browse-catalog, Method:GET, Relative Path:/v1/catalog - Search published recipes by intent, stack and constraints
Action ID:search-recipes, Method:POST, Relative Path:/v1/catalog/search - Prepare a side-effect-free deployment plan for an authorized project
Action ID:plan:page:guides:nuxt:schema-changes, Method:POST, Relative Path:/v1/catalog/plan