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.
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
| Operation | What it does | Requires master password | Self-managed only? |
|---|---|---|---|
| Create | Provisions a new empty PostgreSQL database with a fresh Odoo schema and the selected demo data option. | Yes | Yes |
| Duplicate | Creates an exact copy of an existing database — schema + data + filestore. Useful for staging before an upgrade. | Yes | Yes |
| Backup | Downloads a zip (schema + data + filestore) or dump (schema + data only, no filestore) backup file. | Yes | Yes |
| Restore | Uploads a backup zip or dump file and restores it to a new or existing database name. | Yes | Yes |
| Delete | Permanently drops the PostgreSQL database and its filestore. Irreversible — always back up first. | Yes | Yes |
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.
; 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
| Format | Contents | Restores to | When to use |
|---|---|---|---|
| zip | PostgreSQL dump + filestore (attachments, uploaded files, images) | Any Odoo instance via the database manager Restore operation | Full disaster-recovery backups — the filestore is essential for rendering attachments and stored documents after restore |
| dump | PostgreSQL dump only — no filestore | Any Odoo instance via the database manager Restore operation | Data-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
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
| Feature | Odoo.sh | Self-managed (VPS / on-premise) |
|---|---|---|
| Database manager UI | Not available — managed entirely by Odoo SH platform | Available at /web/database/manager |
| Backups | Automatic 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 / duplicate | Use 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 exposed | Must be disabled in production via `list_db = False` and `admin_passwd` in odoo.conf |
| Database creation | Not available — provisioned by SH on project creation | Via 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:
; 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.
#!/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 -deleteVersion Notes
| Odoo version | Key changes affecting database management |
|---|---|
| Odoo 15 | No breaking changes to manager UI or odoo.conf security keys. zip and dump backup formats unchanged. |
| Odoo 16 | No 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 17 | No 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 & 19 | No 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.
Frequently Asked Questions
What is the Odoo database manager?
Should I leave the Odoo database manager enabled in production?
What is the difference between a zip and a dump backup in Odoo?
How do I change the Odoo master password?
Can I restore an Odoo backup to a different server?
What happens to the filestore when I duplicate an Odoo database?

iWesabe Editorial Team
Practitioner insights on Odoo ERP, ZATCA compliance, and Saudi enterprise digital operations — written by iWesabe's consulting, finance, and engineering teams.
Related Articles
Access Security in Odoo — ir.model.access.csv and Record Rules (Odoo 16–19)
A complete developer reference for Odoo's two-layer security system: model-level CRUD permissions via ir.model.access.csv and record-level filtering via ir.rule. Verified for Odoo 18 & 19.
Context and Domain in Odoo — Developer Reference (Odoo 16–19)
A practical guide to Odoo domains (record filtering) and context (key–value state passing) — how they work, where they appear, and the syntax rules for Odoo 16 through 19. Verified for Odoo 18 & 19.
How to Deploy Community Modules on Odoo.sh (Odoo 16–19)
A complete developer reference for deploying custom and OCA community modules on Odoo.sh: GitHub repository setup, branch workflow, submodules, requirements.txt, build logs, and staging-to-production promotion. Verified for Odoo 18 & 19.
Explore Related Solutions
Financial Management
Automate your Saudi Arabia accounting — ZATCA Phase 2 e-invoicing, VAT returns, Zakat provisioning, multi-currency bank reconciliation, and real-time financial reporting — all inside one connected Odoo platform. Fully localised for KSA and the GCC by iWesabe.
ExploreCRM & Customer Relationship Management
Turn every lead into a closed deal. Odoo CRM gives your sales team a structured Kanban pipeline, automated follow-up sequences, and a 360° customer view — all connected natively to Accounting, Inventory, and Email Marketing.
ExploreManufacturing Management ERP
Run lean, traceable production with Odoo Manufacturing — work orders, Bills of Materials, quality control, and real-time OEE dashboards built for KSA factory floors.
ExploreSupply Chain Management
From purchase order to final delivery — Odoo Supply Chain connects procurement, multi-warehouse inventory, demand forecasting, and vendor management into one real-time platform. Purpose-configured for Saudi Arabia and the GCC by iWesabe.
Explore