Odoo Development

Odoo Database Management — Complete Guide to the Database Manager (Odoo 16–19)

A complete reference for Odoo's built-in database manager: create, duplicate, backup, restore, and delete databases — plus security hardening for production environments. Verified for Odoo 18 & 19.

iWesabe Editorial TeamOctober 4, 20208 min read

Odoo includes a built-in database manager that lets administrators create, duplicate, back up, restore, and delete PostgreSQL databases from a browser interface — without requiring direct server access. This is particularly useful during development (spinning up a fresh test database), before upgrades (taking a verified backup), and for disaster recovery (restoring from a zip backup). Understanding how the database manager works — and how to secure it — is essential for any Odoo administrator managing a self-hosted installation.

Database Manager Operations Overview

Odoo database manager — available operations
OperationWhat it doesRequires master passwordSelf-managed only?
CreateProvisions a new empty PostgreSQL database with a fresh Odoo schema and the selected demo data option.YesYes
DuplicateCreates an exact copy of an existing database — schema + data + filestore. Useful for staging before an upgrade.YesYes
BackupDownloads a zip (schema + data + filestore) or dump (schema + data only, no filestore) backup file.YesYes
RestoreUploads a backup zip or dump file and restores it to a new or existing database name.YesYes
DeletePermanently drops the PostgreSQL database and its filestore. Irreversible — always back up first.YesYes

Accessing the Database Manager

The database manager is a standalone page served by the Odoo web server — it does not require an active database session. You can reach it from the Odoo login screen or directly via URL.

The Master Password

Every database manager operation requires a master password — a separate credential from any database-level user password. This password protects the database manager from unauthorized use. It is set in `odoo.conf` via the `admin_passwd` key.

ini
; odoo.conf — master password configuration
[options]
admin_passwd = your_strong_master_password_here

; For production: set a long random value (32+ characters)
; and disable the manager entirely (see Security section).
; Never use the default 'admin' value in any environment.

Backup Formats: zip vs. dump

Odoo database manager backup formats compared
FormatContentsRestores toWhen to use
zipPostgreSQL dump + filestore (attachments, uploaded files, images)Any Odoo instance via the database manager Restore operationFull disaster-recovery backups — the filestore is essential for rendering attachments and stored documents after restore
dumpPostgreSQL dump only — no filestoreAny Odoo instance via the database manager Restore operationData-only snapshots for analysis, or when filestore size makes zip impractical (hundreds of GB). Missing filestore means attachments return 404 after restore.

How to Back Up an Odoo Database

text
Step 1 — Open the database manager
  Navigate to: https://your-odoo-domain.com/web/database/manager

Step 2 — Click "Backup" next to the database name

Step 3 — Enter the master password

Step 4 — Choose backup format
  - zip (recommended) — includes filestore
  - dump — database only

Step 5 — Click "Backup" to download the file
  File is saved to your browser's download folder.
  Filename format: <db_name>_<YYYY-MM-DD>_<HH-MM-SS>.<format>

Step 6 — Store the backup in a safe off-server location
  At minimum: a different server or cloud storage bucket.
  Never rely solely on a backup file on the same server as the database.

How to Duplicate an Odoo Database

Duplicating a database is the safest way to create a staging environment before a major upgrade or configuration change. The duplicate is a full copy — schema, data, and filestore — running as an independent database. Changes to the duplicate do not affect the source.

Odoo.sh vs. Self-Managed — Database Management Differences

Database management — Odoo.sh vs. self-managed comparison
FeatureOdoo.shSelf-managed (VPS / on-premise)
Database manager UINot available — managed entirely by Odoo SH platformAvailable at /web/database/manager
BackupsAutomatic daily backups by Odoo — downloadable from the SH dashboard. No manual backup via manager needed.Manual via database manager UI or PostgreSQL `pg_dump` + filestore copy. Automate with cron.
Staging / duplicateUse SH's branch system — push to staging branch, merge to production. Do not duplicate via manager.Duplicate via database manager UI or restore a backup under a new name.
Security (manager URL)N/A — manager is not exposedMust be disabled in production via `list_db = False` and `admin_passwd` in odoo.conf
Database creationNot available — provisioned by SH on project creationVia database manager UI

Securing the Database Manager in Production

The database manager must be disabled in production. Leaving it enabled exposes an unauthenticated (master-password-only) interface that can create, delete, or download a full copy of your database to anyone who can reach the URL. Three `odoo.conf` settings harden the installation:

ini
; odoo.conf — production security hardening

[options]
; 1. Disable the database selector on the login screen
;    (hides database list from the login page)
list_db = False

; 2. Set a strong master password (32+ random characters).
;    Even with list_db = False, admin_passwd protects the
;    manager if it's somehow reached.
admin_passwd = <strong-random-32-char-password>

; 3. Lock to a single database name
;    (Odoo will only serve this database; manager is inaccessible)
db_name = your_production_db
db_filter = ^your_production_db$

Command-Line Backup (When the UI is Disabled)

When the database manager is disabled in production (as it should be), take backups directly on the server using PostgreSQL tools and a filestore copy.

bash
#!/bin/bash
# Odoo production backup script — run as odoo system user
# Replace DB_NAME and BACKUP_DIR with your values.

DB_NAME="your_production_db"
BACKUP_DIR="/var/backups/odoo"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
FILESTORE="/home/odoo/.local/share/Odoo/filestore/$DB_NAME"

mkdir -p "$BACKUP_DIR"

# 1. Dump the PostgreSQL database
pg_dump -U odoo -Fc "$DB_NAME" > "$BACKUP_DIR/${DB_NAME}_${DATE}.dump"

# 2. Archive the filestore alongside it
tar -czf "$BACKUP_DIR/${DB_NAME}_filestore_${DATE}.tar.gz" -C "$FILESTORE" .

echo "Backup complete: $BACKUP_DIR"

# 3. (Optional) Remove backups older than 7 days
find "$BACKUP_DIR" -name "*.dump" -mtime +7 -delete
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete

Version Notes

Odoo database manager changes by version
Odoo versionKey changes affecting database management
Odoo 15No breaking changes to manager UI or odoo.conf security keys. zip and dump backup formats unchanged.
Odoo 16No breaking changes to database manager. Odoo 16 moves to PostgreSQL 14+ requirement — backup dumps created on Odoo 16 cannot be restored to Odoo instances running on older PostgreSQL versions.
Odoo 17No breaking changes to database manager UI. `admin_passwd` behaviour unchanged. Odoo 17 introduces improved error messages in the manager for incompatible backup versions.
Odoo 18 & 19No breaking changes to database manager. `list_db`, `admin_passwd`, and `db_filter` behave as documented. Filestore layout unchanged.

Need Help Setting Up Automated Backups or a Secure Odoo Environment?

Our certified Odoo team handles production hardening, automated backup pipelines, and disaster-recovery planning for Saudi businesses — including PDPL-compliant data retention and multi-server high-availability setups.

WhatsApp

Frequently Asked Questions

What is the Odoo database manager?
The Odoo database manager is a built-in browser-based interface available at `/web/database/manager` on any self-managed Odoo installation. It allows administrators to create, duplicate, back up, restore, and delete Odoo databases without needing direct PostgreSQL or shell access. Every operation requires the master password set in `odoo.conf` (`admin_passwd`). It is not available on Odoo.sh, where database management is handled by the platform.
Should I leave the Odoo database manager enabled in production?
No. The database manager should be disabled in production by setting `list_db = False` in `odoo.conf` and using a single-database `db_filter`. Leaving it enabled means anyone who can reach your Odoo URL can attempt to download or delete your entire database using only the master password. For production backups, use `pg_dump` + filestore copy on the server, automated with a daily cron job.
What is the difference between a zip and a dump backup in Odoo?
A zip backup contains both the PostgreSQL database dump and the filestore (uploaded files, attachments, stored images). A dump backup contains only the PostgreSQL data — no filestore. For disaster recovery, always use zip backups; the filestore is essential for rendering any attachment or document after restore. Use dump backups only for data analysis snapshots or when the filestore is too large to include (in which case you must transfer the filestore separately).
How do I change the Odoo master password?
Edit `admin_passwd` in your `odoo.conf` file and restart the Odoo service. Alternatively, if the database manager is still accessible, you can change it from the manager page: scroll to the bottom of the page to find the 'Set Master Password' section. For production, always set it via `odoo.conf` — the file-based value persists across restarts and upgrades. Use a randomly generated string of at least 32 characters.
Can I restore an Odoo backup to a different server?
Yes — as long as the target server is running the same or a newer Odoo version and a compatible PostgreSQL version. Open the database manager on the target server, click 'Restore', enter the master password, upload the zip file, choose a new database name, and confirm. For zip backups, the filestore is automatically extracted and placed correctly. For dump backups, you must transfer the filestore directory manually afterward. You cannot restore an Odoo 17 backup to an Odoo 16 server — only forward (same or newer) restores are supported.
What happens to the filestore when I duplicate an Odoo database?
When you duplicate a database via the database manager UI, Odoo copies both the PostgreSQL schema and data AND the filestore to a new directory. The duplicate has its own independent filestore at `~/.local/share/Odoo/filestore//`. Files uploaded to the duplicate do not affect the source filestore, and vice versa. This makes the UI duplicate operation a safe staging method — safer than a dump-only copy that would share no filestore.
iWesabe Editorial Team

iWesabe Editorial Team

Practitioner insights on Odoo ERP, ZATCA compliance, and Saudi enterprise digital operations — written by iWesabe's consulting, finance, and engineering teams.

About iWesabe

Related Articles