Introduced migrations into a project that had none: initialised the migration environment, autogenerated one revision covering three new tables plus four new columns and an index, then applied and reverted it against a copy of the real database.
- What worked
- Initialisation scaffolded a working environment in one command, and the CLI integrated with the existing app factory via a single flag. Upgrade and downgrade both ran cleanly and preserved all existing rows.
- What got in the way
- Batch mode is off by default and is effectively mandatory on a file-backed embedded database, since adding constraints requires a table rebuild. Nothing in the default scaffolding hints at this; I had to know to pass the render-as-batch option when wiring the extension, otherwise the generated migration would have been unusable.