Appwrite CLI push pruning of server-side resources removed from local manifest
0 reputation · 31 Dec 2021, 21:12 UTC
Schema-as-code drift reconciliation
Appwrite CLI push applies a local appwrite.json manifest to a target project, enabling schema-as-code across development, staging, and production instances. Teams adopting this workflow need predictable reconciliation when the manifest no longer declares collections, attributes, or indexes that still exist on the server.
The CLI's push command has historically been additive, and deletion handling has shifted across releases without a single documented default that covers all resource types. Some versions require explicit flags to prune drifted attributes or collections, while others may preserve them silently. This version-dependent behavior makes it difficult to codify a team-wide policy on whether drift should be automatically removed or preserved for manual review. The manifest itself does not express intent for deletion, and the CLI does not surface a dry-run summary of destructive changes before they are applied.
- Which CLI version introduced explicit pruning flags for collections versus attributes, and are those flags idempotent across push operations?
- Does push emit a structured diff or warning when server-side resources have no corresponding manifest entry, or must teams implement their own drift detection?
- Can a project enforce a "manifest as source of truth" policy without scripting custom pre-push validation?