Upgrade notes
What an operator upgrading an existing deployment needs to know about recent schema migrations. New installations start from an empty database and can skip this page. The deployment order itself, and how to roll back, are in rolling deployment order and deployment reliability.
Before starting this release
Before starting this release, run alembic upgrade head through
0083_host_move_out. The supported deployment scripts run migrations
before replacing the API; every migration listed here is additive and safe
under the running previous release unless it says otherwise. The few
transitions that need stopped writers are listed in
applying migrations that are not backwards-compatible.
After migrating, start the main control-plane listener with its existing complete environment: it imports newly registered settings once, as described in Admin Settings.
Recent migrations
Newest first.
Migration |
What it changes |
|---|---|
|
Adds the |
|
Adds nullable team columns to environments and their bindings, and lets a repository default name any environment. Changes no existing row. Its downgrade refuses while a team environment exists, archived ones included. |
|
Adds |
|
Adds the owner SSH server tables; see SSH servers. Changes no existing row. |
|
Adds teams: members, single-use invitations, join requests and the team audit log. Nothing else refers to a team yet, so it changes no existing row and nothing anyone can run or read. |
|
Adds environment installation snapshots and the setup fingerprint on environment bindings that decides which snapshot a workspace may start from; see environment installation snapshots. |
|
Adds the per-day container usage table and an owner index on |
|
Adds a nullable residency generation to MCP approval records; existing approvals keep it empty. |
|
Adds two empty JSON columns for agent updates from the admin Settings page. |
|
Adds |
|
Adds the |
|
Drops the retired memory tables. A rollback to before |
|
Drops |
|
Moves the memory switches and saved preferences onto the durable-memory table. |
|
Adds the durable-memory table. |
|
Only replaces a trigger function. |
|
Builds an index on |
|
Backfills a non-null drain-fence epoch for every host. The database rotates that epoch whenever drain-relevant lifecycle, credential, placement or ownership state changes. Once the V2 control plane is activated, this revision and the |
|
Starts every existing host without a deployment drain owner or release receipt. The V1 marker it introduced remains only so an older orchestrator can perform the bridge upgrade; it is not a rollback target after V2 activation. |
|
Adds |
|
Adds |
Older revisions that need a maintenance window are listed in applying migrations that are not backwards-compatible. A database still stamped with the retired pre-2026-09-10 chain cannot be upgraded directly; see preserving an old-chain database.
When you add a migration
Add a row to the table above in the same pull request, saying what an operator upgrading a live deployment needs to know: what existing rows it changes, how long it can lock, and whether its downgrade refuses. Then update the head revision named under Before starting this release and in ENVIRONMENT.md; a test checks that both name the current head.