Check out v4 of the Fauna CLI
v4 of the Fauna CLI is now in beta. The new version introduces enhancements to the developer experience, including an improved authentication workflow. To get started, check out the CLI v4 quick start. |
database.delete()
Deletes a database.
Description
The delete()
method deletes a database.
Considerations
When you delete a database, its data becomes inaccessible and is asynchronously deleted. As part of the deletion process, Fauna recursively deletes:
-
Any keys scoped to the database.
-
The database’s child databases, including any nested databases.
Deleting a database with a large number of keys can exceed
Transactional
Write Ops throughput limits. This can cause
throttling errors with a
limit_exceeded
error
code and a 429 HTTP status code.
Deleting a database with a large number of child databases can cause timeout
errors with a time_out
error code and a 440 HTTP
status code.
To avoid throttling or timeouts, incrementally delete all keys and child databases before deleting the database. See delete all keys and delete all child databases.
Examples
Delete all child databases
To avoid timeouts, you can incrementally delete all child databases for a database before deleting the database itself.
To stay within transaction size
limits, use set.paginate()
to
perform the deletions over several queries instead of one.
// Gets all `Database` system collection documents.
// Uses `pageSize()` to limit the page size.
// Uses `paginate()` to project the after cursor.
let page = Database.all().pageSize(200).paginate()
// `paginate()` returns an object. The object's `data` property
// contains an Array of `Database` documents.
let data = page.data
// Use `forEach()` to delete each `Database` document in the
// `data` Array.
data.forEach(doc => doc.delete())
// Project the `after` cursor returned by `paginate()`.
// Use the cursor to iterate through the remaining pages.
page {
after
}
{
after: "hdWDxoq..."
}
Subsequent queries use the cursor and
Set.paginate()
to iterate
through the remaining pages:
// Uses `Set.paginate()` to iterate through pages.
let page = Set.paginate("hdWDxoq...")
let data = page.data
data.forEach(doc => doc.delete())
page {
after
}
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!