WeaviateEx.API.Backup (WeaviateEx v0.7.4)
View SourceBackup and restore operations for Weaviate.
Provides complete backup management:
- Create backups to filesystem, S3, GCS, or Azure
- Restore backups from any supported backend
- Check backup/restore status
- List and cancel backups
- Wait for operations to complete
Creating a Backup
# Simple backup to filesystem
{:ok, status} = Backup.create(client, "my-backup", :filesystem)
# Backup specific collections to S3
{:ok, status} = Backup.create(client, "my-backup", :s3,
include_collections: ["Article", "Author"],
wait_for_completion: true
)
# Backup with configuration
{:ok, status} = Backup.create(client, "my-backup", :filesystem,
config: Config.create(cpu_percentage: 50, compression: :best_compression)
)Restoring a Backup
# Simple restore
{:ok, status} = Backup.restore(client, "my-backup", :filesystem)
# Restore with wait
{:ok, status} = Backup.restore(client, "my-backup", :s3,
wait_for_completion: true
)Checking Status
{:ok, status} = Backup.get_create_status(client, "my-backup", :filesystem)
{:ok, status} = Backup.get_restore_status(client, "my-backup", :s3)Listing and Canceling
{:ok, backups} = Backup.list(client, :filesystem)
:ok = Backup.cancel(client, "my-backup", :filesystem)
Summary
Functions
Build request body for create operation.
Build request body for restore operation.
Cancel an in-progress backup.
Create a new backup.
Get the status of a backup creation.
Get the status of a backup restoration.
List all backups for a storage backend.
Restore a backup.
Wait for a backup operation to complete.
Functions
Build request body for create operation.
Examples
body = Backup.build_create_body("backup-123", include_collections: ["Article"])
Build request body for restore operation.
Examples
body = Backup.build_restore_body(include_collections: ["Article"])
body = Backup.build_restore_body(roles_restore: :all, users_restore: :none)
@spec cancel( WeaviateEx.Client.t(), String.t(), WeaviateEx.Backup.Storage.t(), keyword() ) :: :ok | {:error, WeaviateEx.Error.t()}
Cancel an in-progress backup.
Options
:location- Dynamic backup location configuration (Location struct)
Examples
:ok = Backup.cancel(client, "my-backup", :filesystem)
# Cancel with dynamic location
:ok = Backup.cancel(client, "my-backup", :s3,
location: Location.s3("my-bucket", "/backups", region: "us-west-2"))
@spec create( WeaviateEx.Client.t(), String.t(), WeaviateEx.Backup.Storage.t() | WeaviateEx.Backup.Location.t(), keyword() ) :: {:ok, WeaviateEx.Backup.Status.CreateResponse.t()} | {:error, WeaviateEx.Error.t()}
Create a new backup.
The backend can be either an atom (:filesystem, :s3, :gcs, :azure) or
a WeaviateEx.Backup.Location struct for dynamic configuration.
Options
:include_collections- List of collections to include (default: all):exclude_collections- List of collections to exclude:wait_for_completion- Wait for backup to complete (default: false):config- Backup configuration (seeWeaviateEx.Backup.Config):poll_interval- Status poll interval in ms (default: 1000):timeout- Maximum wait time in ms (default: 300000)
Examples
{:ok, status} = Backup.create(client, "daily-backup", :filesystem)
# Using dynamic location
{:ok, status} = Backup.create(client, "daily-backup",
Location.s3("my-bucket", "/backups", region: "us-west-2"),
wait_for_completion: true
)
{:ok, status} = Backup.create(client, "daily-backup", :s3,
include_collections: ["Article"],
wait_for_completion: true,
config: Config.create(compression: :best_speed)
)
@spec get_create_status( WeaviateEx.Client.t(), String.t(), WeaviateEx.Backup.Storage.t() ) :: {:ok, WeaviateEx.Backup.Status.CreateResponse.t()} | {:error, WeaviateEx.Error.t()}
Get the status of a backup creation.
Examples
{:ok, status} = Backup.get_create_status(client, "my-backup", :filesystem)
if Status.completed?(status.status) do
IO.puts("Backup complete!")
end
@spec get_restore_status( WeaviateEx.Client.t(), String.t(), WeaviateEx.Backup.Storage.t() ) :: {:ok, WeaviateEx.Backup.Status.RestoreResponse.t()} | {:error, WeaviateEx.Error.t()}
Get the status of a backup restoration.
Examples
{:ok, status} = Backup.get_restore_status(client, "my-backup", :filesystem)
@spec list(WeaviateEx.Client.t(), WeaviateEx.Backup.Storage.t(), keyword()) :: {:ok, [WeaviateEx.Backup.Status.BackupInfo.t()]} | {:error, WeaviateEx.Error.t()}
List all backups for a storage backend.
Options
:sort_by_starting_time_asc- Sort backups by start time ascending (default: false)
Examples
{:ok, backups} = Backup.list(client, :filesystem)
Enum.each(backups, fn backup ->
IO.puts("#{backup.id}: #{backup.status}")
end)
# Sort by start time ascending
{:ok, backups} = Backup.list(client, :s3, sort_by_starting_time_asc: true)
@spec restore( WeaviateEx.Client.t(), String.t(), WeaviateEx.Backup.Storage.t() | WeaviateEx.Backup.Location.t(), keyword() ) :: {:ok, WeaviateEx.Backup.Status.RestoreResponse.t()} | {:error, WeaviateEx.Error.t()}
Restore a backup.
The backend can be either an atom (:filesystem, :s3, :gcs, :azure) or
a WeaviateEx.Backup.Location struct for dynamic configuration.
Options
:include_collections- List of collections to restore (default: all):exclude_collections- List of collections to exclude:wait_for_completion- Wait for restore to complete (default: false):config- Restore configuration (seeWeaviateEx.Backup.Config):poll_interval- Status poll interval in ms (default: 1000):timeout- Maximum wait time in ms (default: 300000):roles_restore- RBAC roles restore option::all,:none, or list of role names:users_restore- RBAC users restore option::all,:none, or list of user IDs:overwrite_alias- Whether to overwrite existing aliases (default: false)
Examples
{:ok, status} = Backup.restore(client, "daily-backup", :filesystem)
# Using dynamic location
{:ok, status} = Backup.restore(client, "daily-backup",
Location.s3("my-bucket", "/backups", region: "eu-west-1"))
{:ok, status} = Backup.restore(client, "daily-backup", :s3,
include_collections: ["Article"],
wait_for_completion: true
)
# With RBAC options
{:ok, status} = Backup.restore(client, "daily-backup", :filesystem,
roles_restore: :all,
users_restore: ["admin@example.com"],
overwrite_alias: true
)
@spec wait_for_completion( WeaviateEx.Client.t(), String.t(), WeaviateEx.Backup.Storage.t(), :create | :restore, keyword() ) :: {:ok, WeaviateEx.Backup.Status.CreateResponse.t() | WeaviateEx.Backup.Status.RestoreResponse.t()} | {:error, WeaviateEx.Error.t()}
Wait for a backup operation to complete.
Polls the status endpoint until the operation completes or times out.
Options
:poll_interval- How often to check status (default: 1000ms):timeout- Maximum wait time (default: 300000ms)
Examples
{:ok, status} = Backup.wait_for_completion(client, "my-backup", :filesystem, :create)