Backup & Restore Nautobot with Snapshots¶
A Snapshot is a backup of the database associated to the Instance it's created from. It shows the data's state at the time the Snapshot was created. A Snapshot can be restored to any compatible Instance at a later date.
Create a Snapshot¶
There are two ways to create a Snapshot:
- Create a Snapshot from a Nautobot Cloud Instance. This is useful for regular backups of your Nautobot Cloud instances.
- Upload a database backup from a self-hosted Nautobot. This is useful when migrating from a self-hosted Nautobot deployment to Nautobot Cloud.
In both cases, the result is a Snapshot stored in Nautobot Cloud that can be restored to a compatible Instance. The difference is only in how the underlying database contents are obtained — taken from a running cloud Instance, or uploaded from a pg_dump backup of a self-hosted database.
These methods are described in detail below.
Method 1: Create a Snapshot from a Nautobot Cloud Instance¶
To create a Snapshot from a Nautobot Cloud Instance, navigate to the Snapshots section in the left-hand menu. This will bring you to the list of existing Snapshots, if any.

Click the Create button at the top right corner of the page. This will bring up a dialog to create a new Snapshot of an instance.

Fields:¶
| Field | Required | Description |
|---|---|---|
| Instance (required): | Yes | The Instance from which a Snapshot will be created. |
| Name (required): | Yes | A human-readable name for the Snapshot. |
Click Create to take the Snapshot. The process may take a while depending on the size of the database.
Method 2: Upload a database backup from a self-hosted Nautobot¶
If you are migrating from a self-hosted (on-prem) Nautobot deployment to Nautobot Cloud, you can generate a database backup of your existing Nautobot database with pg_dump and upload it as a Snapshot in Nautobot Cloud.
Generate a Database Backup from a Self-Hosted Nautobot¶
Run pg_dump on the host running your Nautobot PostgreSQL database (or from any host with pg_dump installed and network access to it). Substitute ${NAUTOBOT_DB_NAME} and ${NAUTOBOT_DB_USER} with the name of your Nautobot database and a PostgreSQL user with read access to it:
The resulting /tmp/nautobot_database.tar file is the database backup you will upload to Nautobot Cloud, where it will be stored as a Snapshot.
Optional: Exclude the Object Change Log
The extras_objectchange table stores Nautobot's audit log of object changes and is often very large. If you do not need to migrate this history, you can exclude its row data (the table structure is still dumped) to significantly reduce the backup size:
What the Flags Do¶
| Flag | Long form | Purpose |
|---|---|---|
-d |
--dbname |
The database to dump. |
-U |
--username |
The PostgreSQL user to connect as. |
-O |
--no-owner |
Omits ALTER OWNER statements so restored objects are owned by the user running the restore. Avoids errors when the original role does not exist in the destination environment. |
-x |
--no-privileges |
Omits GRANT/REVOKE statements. Prevents permission errors when restoring into an environment with different roles. |
-b |
--blobs |
Includes large objects (BLOBs) in the dump. |
-F t |
--format=tar |
Writes the dump as a tar archive, which is the format expected by Nautobot Cloud. |
-f |
--file |
Output file path for the dump. |
--exclude-table-data=<table> |
— | Dumps the schema of the named table but skips its row data. Used above to omit the contents of the extras_objectchange audit log. |
Upload the Database Backup as a Snapshot¶
To upload your database backup, navigate to the Snapshots section in the left-hand menu. This will bring you to the list of existing Snapshots, if any.

Click the Upload button next to the Create button at the top right corner of the page. This will bring up a dialog to upload your database backup file as a new Snapshot.

Fields:¶
| Field | Required | Description |
|---|---|---|
| Instance (required): | Yes | The Instance the resulting Snapshot will be associated with. Restores are not performed automatically upon upload — the Snapshot can be restored at any point in the future. To restore a Snapshot to an Instance, please use the Restore action. It can be found under the ellipsis (...) menu in the list of Snapshots. |
| Name (required): | Yes | A human-readable name for the resulting Snapshot. |
| Snapshot file (required): | Yes | A TAR (.tar) file of the database backup produced by pg_dump (see Generate a Database Backup from a Self-Hosted Nautobot above). |
Click Upload to upload the file. The process may take a while depending on the size of the database.