How to promote database changes through environments?

Hi all, I scanned the forum about this and I couldn’t find any discussions on it so I thought I’d ask.

How do you promote database changes through different environments. Maybe my mental model is off, but I am imagining an api with three environments (dev, staging, prod) each with their own database. If you make a change in the development environment, how would you promote that change to staging and then to prod? Is that recommended?

I’ve been using the fwitter repository as an example (amazing btw) and it uses a setup script that ignores collections, index, functions that already exist. Is that script something you’d run in each environment each time you promote? Would that be done by hand or do organizations run it as apart of CI/CD?

Finally, what measures have you seen others take to prevent these scripts from running in the wrong environment?

1 Like

fauna/faunadb-migrate: FaunaDB Migrate (

Saw this!

Hey Sean, I just made a version that does schema changes transactionally ad another wide range of features:

If it’s not what you are looking for, let us know.