Use protected mode to safely change schema
Protected mode is a database setting that prevents destructive changes to the schema.
You can set protected mode in the Create Database dialog when you click Create Database, choosing one of the following protection setting options:
-
Enabled
-
Disabled (default)
-
Inherit
Protected mode and the database hierarchy
A database can have one of the following protection settings:
Setting | Description |
---|---|
|
Protected mode enabled. |
|
(default) Protected mode disabled. |
|
Sets the protected mode of the database to that of its nearest ancestor
that isn’t also set to |
Prohibited changes
The following table shows which schema changes are potentially destructive and, therefore, protected when protected mode is set:
Entity or Field | Prohibited operations | Comments |
---|---|---|
|
Delete |
|
history_days |
Decrease |
|
ttl_days |
Decrease |
|
indexes |
Change |
Prohibits changing or removing an index or unique constraint in a way that causes a backing index to be deleted. That is, removing or changing the definition of an indexes or unique constraint that doesn’t share the same terms and values with another index or unique constraint. indexes are implemented with a backing classic index behind the user-facing definition. Protected mode disallows changing or removing indexes when the change or removal causes a backing index to be deleted because the change can’t easily be reverted. If an index shares its backing index with another index, changing or removing the index doesn’t delete the backing index. In this case, protected mode allows the change or removal because if the original index definition is restored, the existing backing index is used, and a new index doesn’t have to be built. When you accidentally trigger a new backing index build and then want to revert to the previous definition, protected mode allows the deletion of backing indexes in pending status. |
unique constraint |
Change |
Prohibits changing or removing an index or unique constraint in a way that causes a backing index to be deleted. That is, removing or changing the definition of an indexes or unique constraint that doesn’t share the same terms and values with another index or unique constraint. unique constraints are implemented with a backing classic index behind the user-facing definition. Protected mode disallows changing or removing unique constraints when the change or removal causes a backing index to be deleted because the change can’t easily be reverted. If an index shares its backing index with another unique constraint, changing or removing the index doesn’t delete the backing index. In this case, protected mode allows the change or removal because if the original index definition is restored, the existing backing index is used, and a new index doesn’t have to be built. |
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!