page:guides:django:schema changes

Apply Database Schema Changes for Django

Summary

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

Workflow 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. Command: ample deploy . --name <name> --public --start "python3 run.py" --release-command "python3 manage.py migrate"

3. Verify the Marker Through the App

Serve a route (/migrated) that reads something only the migration creates.

4. 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 <log-identifier> --kind build

Prerequisites

Tested Configuration

Success Checks

Limitations

Cost Estimate

Examples

Additional Information