Files
Andrey Antukh bff3eb49e5 🐛 Address the review of the file_change partition
The production runbook promised a rollback it did not have: the section
was a sketch, and its statements could write to the table about to be
dropped. The rollback is removed, and so is every comment that described
it. `file_change_legacy` stays as a frozen copy of the previous layout.

The cutover check now aborts the transaction when a row of the old table
is missing in the new one, instead of leaving the decision to the
operator.

The five secondary indexes of the new table are built after the last
delta pass: the bulk and the delta passes only need the primary key, so
the batches no longer maintain them.

The copy of 0158 is now replayed in a test against the pre-0158 shape
with a labelled and an unlabelled row, plus an empty instance that must
leave no legacy table behind. The updated_at assertion of the snapshot
mutations is bounded by the test clock, and the repair revision stops
writing the `features` of the file, like the normal save.

AI-assisted-by: deepseek-v4.1-flash
2026-11-05 14:03:30 +00:00
..
2026-11-05 13:24:17 +01:00

Operations

Procedures that are executed by hand on an instance, not by the application.

They are not part of the product: they describe how to do a one-off operation on a running database, with the exact statements to run and what to check between them.

Each procedure lives here while the operation is alive. When the operation is done, the file is either deleted or marked as historical, so the folder does not grow with procedures that nobody will run again.

Procedure Version
Migrate legacy file payloads to file_data 2.19.0
Partition file_change by file_id 2.19.0