# Backups

Only Postgres databases are backed up. For each one, you can run a backup now and list the backups.

## What is backed up

- Postgres databases.

These are not backed up:

- Redis databases.
- Files an app writes to its own disk.
- Objects in your storage buckets.

Keep your own copy of your code and of any data you cannot recreate.

## Run a backup now

```
astris database backup --id <id>
```

It prints `Backup run.` The MCP tool `database` with the action `backup` and the `database_id` does the same.

## List the backups

```
astris database backups --id <id>
```

It prints one line per backup: the key, the size in bytes and the time it was written. The MCP tool `database` with the action `backups` gives the same list.

## Redis

For a Redis database, both calls are refused with [conflict](/docs/errors/conflict):

> This Redis database is not backed up. Only Postgres databases are backed up. Files an app writes to its own disk are not backed up either.

## Other refusals

- An id that is not one of your databases is refused with [not_found](/docs/errors/not_found).
- A Postgres database with no backup job is refused with [conflict](/docs/errors/conflict).
- When Astris cannot run or list the backups, the call is refused with [unavailable](/docs/errors/unavailable) or [upstream](/docs/errors/upstream).
- A list can also be refused with `backup_not_configured` (503) or `backup_unavailable` (502).

## Restore

A restore is not a call the MCP or the CLI makes.

## Your plan's pool

Backups do not count against your plan's pool. See [Usage](/docs/usage).
