+ // To balance these mixed considerations, the upgrade runs in two phases:
+ //
+ // - Defensive/conservative/closed phase ("upgrade.main"): Likely mismatch
+ // between schema+code. Low-confidence in most services (APIs/hooks/etc).
+ // Ignore caches/indices/etc. Only perform low-level schema revisions.
+ // - Constructive/liberal/open phase ("upgrade.finish"): Schema+code match.
+ // Higher confidence in most services (APIs/hooks/etc).
+ // Rehydrate caches/indices/etc.
+ //