fauna schema push
Push a local directory of .fsl
schema files to Fauna. By default, stages a schema change.
Syntax
fauna schema push [-y | --no-input] [--active] [--[no-]color ]
[--dir <value>] [--endpoint <value>] [--environment <value>]
[--help] [--secret <value>] [--timeout <value>] [--url <value>]
Description
fauna schema push
pushes a local directory of .fsl
files to Fauna.
Valid FSL filenames must use the .fsl
extension and can’t start with *
.
Staged schema changes
To avoid index downtime due to index
builds, schema push
stages schema changes by default. See Run a staged schema change.
Unstaged schema changes
To immediately commit schema changes without staging, use the --active
option. See Immediately apply an unstaged schema change.
Avoid concurrent schema changes
Concurrent unstaged schema changes can cause contended transactions, even if the changes affect different resources. This includes unstaged changes made using:
A schema change triggers a transaction that validates the entire database schema. To avoid errors, do one of the following instead:
-
Perform unstaged schema changes sequentially
Options
Option | Description |
---|---|
|
Push the change without confirmation input. |
|
Skip staging the schema and make the schema active immediately. If the schema includes index definition changes, the related indexes may become temporarily unavailable due to index builds. |
|
Enables or disables color formatting for the output. Color formatting is
enabled by default if the terminal supports it (determined using
chalk/supports-color). Use
|
|
A local directory of |
|
Fauna server endpoint. |
|
Environment to use from |
|
Help for |
|
Authentication secret. Overrides the
secret in Use a scoped key to interact with a child database using a parent database’s admin key. For example, with a parent database’s admin key secret of |
|
Connection timeout in milliseconds. |
|
Database URL. Overrides the |
Examples
Run a staged schema change
A staged schema change lets you change one or more collection schema without index downtime due to index builds.
To run a staged schema change, you must use the Fauna CLI. You can’t run a staged schema change using FQL schema methods or the Fauna Dashboard.
To run a staged schema change using the CLI:
-
Make the desired changes to
.fsl
files in your schema directory.You can’t use a staged schema change to delete or rename schema. Instead, delete or rename the schema in a separate unstaged schema change.
-
Use
fauna schema push
to stage the schema changes.fauna schema push
stages schema changes by default:fauna schema push
A database can have one staged schema change at a time. You can update staged schema using
fauna schema push
.When a database has staged schema, any access or updates done using FQL’s schema commands on related system collections interact with the staged schema, not the database’s active schema.
For example, when schema changes are staged,
Collection.all()
returnsCollection
documents for the staged collection schema, not the database’sCollection
documents.If a database has staged schema, you can’t edit the database’s active schema using FQL, the Dashboard, or an unstaged schema change. You must first abandon the staged schema change.
-
Use
fauna schema status
to check the status of the staged schema:fauna schema status
Possible statuses:
Staged status Description pending
Changes are being processed. New indexes are still being built.
ready
All indexes have been built. Changes are ready to commit.
failed
There was an error during the staging process.
-
When the status is
ready
, usefauna schema commit
to apply the staged schema to the database:fauna schema commit
You can only commit staged schema with a status of
ready
.If you no longer wish to apply the staged schema or if the status is
failed
, usefauna schema abandon
to unstage the schema:fauna schema abandon
Immediately apply an unstaged schema change
To apply schema changes immediately without staging, use the --active
option:
fauna schema push --active
Schema changes that trigger an index build may result in downtime where the index is not queryable.
Is this article helpful?
Tell Fauna how the article can be improved:
Visit Fauna's forums
or email docs@fauna.com
Thank you for your feedback!