> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dbdock.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

> Quick answers to common questions.

## Supported databases

### Which databases does DBDock support?

DBDock supports **nine connection types**: PostgreSQL, MySQL, MariaDB, SQL Server, CockroachDB, Amazon Redshift, TimescaleDB, MongoDB, and Redis.

| Capability                        | Engines                                                                                               |
| --------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Backup, restore, same-engine copy | PostgreSQL family (PostgreSQL, CockroachDB, Redshift, TimescaleDB), MySQL, MariaDB, SQL Server, Redis |
| Cross-database migration          | MongoDB ↔ PostgreSQL only                                                                             |
| Connect and inspect               | All nine                                                                                              |

The PostgreSQL family uses `pg_dump` / `pg_restore`. MySQL and MariaDB use `mysqldump`. SQL Server uses `mssql-scripter` and `sqlcmd`. Redis uses a bundled worker that streams a binary DUMP/RESTORE format.

MongoDB has **no native backup engine** in DBDock today. Use it for analysis and MongoDB ↔ PostgreSQL migration.

### Which Postgres versions are supported?

Whatever your installed `pg_dump` supports — in practice Postgres 12+. Match the client tool version to your server version.

### Does DBDock support MySQL, MariaDB, SQL Server, or Redis backups?

Yes. Backup, restore, and same-engine copy jobs work for MySQL, MariaDB, SQL Server, and Redis. Native client tools must be on your `PATH` (`mysqldump`, `mssql-scripter`, `sqlcmd`, etc.).

## General

### Is DBDock free?

Yes — MIT licensed, free forever, self-hosted CLI. No vendor lock-in. The hosted dashboard at [dbdock.xyz](https://dbdock.xyz) has a free tier with managed storage included.

### Who's behind DBDock?

Created by [Naheem Olaide](https://github.com/appdever01). Open-source project, contributions welcome on [GitHub](https://github.com/dbdock/dbdock).

### Is DBDock production-ready?

Backup and restore pipelines are stable across PostgreSQL, MySQL, MariaDB, SQL Server, and Redis. Cross-database migration (MongoDB ↔ Postgres) is newer — run a dry run before production use.

### How is DBDock different from `pg_dump`?

`pg_dump` is the engine for PostgreSQL-family databases. DBDock builds around it (and equivalent tools for other engines) with:

* Storage adapters (local, S3, R2, Cloudinary)
* Compression and encryption pipelines
* Retention and scheduling
* Restore UX with filtering (PostgreSQL family)
* Cross-database migration (MongoDB ↔ Postgres)
* Same-engine copy jobs for MySQL, MariaDB, SQL Server, and Redis

Think of DBDock as the toolkit around your database dump tools.

### Is there a hosted DBDock?

The CLI is self-hosted. The [DBDock web app](https://dbdock.xyz) adds a dashboard, managed storage, schedules, alerts, analytics, and billing tiers on top of the same engine layer.

### Is there a GUI?

The hosted dashboard at [dbdock.xyz](https://dbdock.xyz) covers connections, backups, restores, copy jobs, migrations, schedules, and alerts. The CLI remains the option for scripts, CI, and fully self-hosted workflows.

## Installation

### Can I use DBDock without installing it?

Yes — `npx dbdock <command>` works without a global install.

### Does DBDock need Node.js?

Yes, Node 18 or later. If you can't install Node, a Docker image is the easiest workaround.

### What client tools do I need?

At minimum, install the tools for the engines you use:

* **PostgreSQL family** — `pg_dump`, `pg_restore`, `psql`
* **MySQL / MariaDB** — `mysqldump`, `mysql`
* **SQL Server** — `mssql-scripter`, `sqlcmd`
* **Redis** — bundled worker (no extra install)
* **MongoDB migration** — uses the `mongodb` driver at runtime

Run `npx dbdock test` to validate your setup.

## Backup behavior

### How long does a backup take?

Depends on database size, compression level, and network. Rough ballpark:

* 100 MB DB, local storage: \~2–5 seconds
* 1 GB DB, S3 us-east-1: \~30–60 seconds
* 10 GB DB, S3 cross-region: \~5–10 minutes

Run a test backup and measure for your setup.

### Can I back up a live production database?

Yes — logical dumps use MVCC or engine equivalents so reads and writes continue. Expect slightly higher CPU during the dump and possible replication lag on replicas. Run during low-traffic windows when you can.

### Can I back up only some tables?

PostgreSQL-family restores support selective restore from custom-format dumps. For partial backups at dump time, use engine flags directly (`pg_dump --table=...`, etc.) and upload the result yourself. Table-level backup in the CLI is on the [issue tracker](https://github.com/dbdock/dbdock/issues).

### Does DBDock support incremental backups?

PostgreSQL logical dumps are full each time. For WAL-based incremental backup, use PostgreSQL's built-in WAL archiving separately.

Cross-database **migration** supports incremental mode — see [Incremental migration](/migration/incremental).

## Restore

### Can I restore to a different database?

Yes. In `dbdock restore`, choose "New Database Instance (Migrate)" and enter target connection details. Same-engine copy also works via `dbdock copydb`. See [`dbdock restore`](/cli/restore) and [`dbdock copydb`](/cli/copydb).

### Can I restore only specific tables?

PostgreSQL custom-format dumps support selective restore through `pg_restore`. Other engines restore whole databases. Restore into a temporary database and extract what you need if partial restore isn't available for your engine.

### Can I preview a backup's contents?

Not via DBDock currently for all engines. Restore to a temporary database and query it, or use native tools (`pg_restore --list` for PostgreSQL custom format).

## Storage

### Can I use multiple storage providers simultaneously?

No — one active provider per config. Workarounds:

* Run multiple configs (different `dbdock.config.json` paths via `DBDOCK_CONFIG_PATH`)
* Sync primary storage to a secondary (S3 cross-region replication, rclone, etc.)

### How do I migrate backups between providers?

DBDock doesn't have a built-in migrator. Options:

* **AWS CLI / rclone** — copy files at the storage layer
* **Manual** — `dbdock list`, download each, re-upload to the new provider
* **Accept split history** — switch providers; new backups go to the new location

### Do backups work with S3 Object Lock?

Yes. Object Lock is set at the bucket level; DBDock writes objects normally. Retention policies (`dbdock cleanup`) can't delete locked objects — coordinate both retention systems.

## Encryption

### What's the encryption algorithm?

AES-256-GCM with a versioned backup format. Keys derive via PBKDF2-SHA512 with 100,000 iterations. Legacy backups use AES-256-CBC and still restore.

### Can I use multiple encryption keys?

Not simultaneously. DBDock reads one key at a time. For rotating keys, see [Key rotation](/guides/key-rotation).

### Can I disable encryption for some backups?

Yes — pass `--no-encrypt`:

```bash theme={null}
npx dbdock backup --no-encrypt
```

### Does encryption slow backups down?

Measurably, but not dramatically. AES-256 on modern CPUs is fast (AES-NI). Most time is still network and compression.

## Migration

### Can I migrate MongoDB to PostgreSQL?

Yes. See [Migration overview](/migration/overview).

### Can I migrate MySQL or SQL Server to PostgreSQL?

Not as cross-engine migration. MySQL and SQL Server support **same-engine** backup, restore, and copy. Cross-engine migration is MongoDB ↔ PostgreSQL only today.

### What about live replication?

DBDock migration is batch-oriented — not live replication. For CDC-style streaming, use Debezium, Airbyte, or similar.

## Development

### Does DBDock have a TypeScript SDK?

Yes. All programmatic APIs have TypeScript definitions. See [SDK overview](/sdk/overview).

### Can I extend DBDock with custom storage providers?

The four built-in providers (local, S3, R2, Cloudinary) are hardcoded. Adding a new provider means contributing a new adapter — [open a PR](https://github.com/dbdock/dbdock/pulls).

### Where do I report bugs?

* [GitHub issues](https://github.com/dbdock/dbdock/issues)
* Security issues privately via [security advisory](https://github.com/dbdock/dbdock/security/advisories/new)

## Still have questions?

<CardGroup cols={2}>
  <Card title="GitHub Discussions" icon="comments" href="https://github.com/dbdock/dbdock/discussions">
    Ask the community.
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/help/troubleshooting">
    Common issues.
  </Card>
</CardGroup>
