schema changes.md

Apply database schema changes for Flask

Summary

Apply database schema changes for a Flask app on Ample with a release command. python3 migrate.py runs against the injected DATABASE_URL before the new release goes live, and the release fails instead of activating if the migration fails.

Infrastructure requirements

Prerequisites

Exact tested configuration

Steps

  1. Write an idempotent migration. Create tables and markers with IF NOT EXISTS or a migration framework so a re-run is safe.
  2. Deploy with the release command. Ample runs the command before activation; a non-zero exit fails the release.
   ample deploy . --name <app-name> --public --start "python3 run.py" --release-command "python3 migrate.py"
  1. Verify the marker through the app. Serve a route (/migrated) that reads something only the migration creates.
  2. 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.
   ample logs <deployment_id> --kind build

Tested examples

Success checks

Limitations

Cost estimate

Estimated 10.00 USD per month (size prices from pricing.toml at build revision a1b8c38919e59cd035ebabaced73cf84ece24371).

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.

Verification evidence

Last verified: 2026-09-20T01:42:25Z

Execution binding

MCP tool ample_deploy (registry mcp:ample_deploy), schema hash 876465fce906da0c observed 2026-09-20T01:55:48.667900+00:00 at revision 199ff1dfd526, binding state current, required scopes: servers:write, databases:read.