Hi all! I’m setting up a clean workflow for incremental database changes in an Appwrite project. I have experience with Payload CMS, where changing collections/fields auto-generates migration files that we commit and run per environment. I couldn’t find a definitive Appwrite guide for this, so I’d love to hear how you handle it in practice.
Context Environments: dev → staging → prod (separate Appwrite projects). First deploy is easy enough with the CLI. After that, I want a reliable, incremental migration + seed flow.
Questions
Migrations: Do you rely on appwrite push for changes, or do you run code-first scripts with the server SDK (via CI or an admin Function)? Any gotchas with CLI diffs on attributes/indexes?
Promotion: How do you promote the same change through dev (local docker container) → staging (cloud hosted) → prod (tags, versioned scripts, Git-driven CI)?
**Expand/contract changes: **For renames/type changes, do you add new fields, backfill, then drop old later? How do you handle backfills safely at scale?
**Seeding static data: **Do you keep idempotent seed scripts (upserts) you can re-run anytime? Where do you store/run them?
Tracking: Do you keep a “migrations” collection to record which scripts ran, or another pattern?
**Rollbacks & backups: **What’s your rollback story and backup step before running migrations?
**Examples: **Any public repos, gists, or blog posts you recommend?
Thanks! If there’s an established pattern, I’ll summarize it here for others.
Recommended threads
- Retrieving Data From Backups
Hiya, I have a user requesting for data they accidentally deleted. I don't have document history built into my app. Is there a way to extract data from the auto...
- Paused project notification
Hi, how do I disable these notifications? I get them every week and they're starting to annoy me. I don't care that my project is paused.
- Free trial credit?
I understand that another person I know got a free 50 dollar credit promo as a banner in his project but I fail to see one in mine. Is such promo not for everyo...