# Release migrations One-time scripts that ship inside a release package and are run by the manage client right after it deploys the files — before `app/after-update.php`, and only once per installation. This is the place for a change that the code cannot make lazily: renaming a field every gallery file already has, deleting a file a release dropped, rewriting `data/site.json` into a new shape. Not the same thing as the per-gallery data migration in `app/migrate.php`, which the operator runs from **Admin → Data migration**. That one is idempotent housekeeping the application does not depend on; these run automatically as part of the update and must therefore be safe. ## Writing one File name: `YYYY-MM-DD-NN-short-description.php`. They run in filename order, and the name without `.php` is the id recorded in `data/manage/migrations.json`. Renaming a file that already ran makes it run again. ```php