Skip to content

Odoo Single vs Multi-Database Architecture: Decision Guide

DeployMonkey Team · March 24, 2026 7 min read

Overview

Odoo supports running multiple databases on a single server, but the architectural choice between single-database and multi-database deployments has significant implications for performance, security, and maintenance. This guide helps you make the right decision.

Single Database (Recommended for Most)

One Odoo instance with one database containing all companies and data. Use Odoo's built-in multi-company feature for organizational separation.

Advantages

  • Simplest architecture — one database to manage
  • Cross-company reporting and analytics
  • Shared master data (products, contacts)
  • Inter-company transactions (automated)
  • Easiest to maintain and upgrade
  • Best performance (no database switching overhead)

Disadvantages

  • All data in one database — single point of failure
  • Security relies on Odoo's record rules
  • Large databases may need more powerful hardware
  • Cannot run different Odoo versions per company

Multi-Database Architecture

Multiple separate databases on the same Odoo server, each with independent data.

Advantages

  • Complete data isolation between tenants
  • Independent backup and restore per database
  • Can be useful for completely unrelated businesses
  • Smaller individual databases (easier to manage)

Disadvantages

  • No cross-database reporting
  • No shared master data between databases
  • Higher resource consumption (each DB has its own caches)
  • More complex maintenance (upgrade each DB separately)
  • Odoo.sh supports only one production database per project

When to Use Multi-Database

  • SaaS providers hosting separate customers
  • Completely unrelated businesses with no data sharing
  • Regulatory requirements demanding physical data separation
  • Testing and staging environments alongside production

When to Use Multi-Company (Single DB)

  • Related companies needing inter-company transactions
  • One organization with multiple subsidiaries
  • Shared vendor/customer base across entities
  • Consolidated financial reporting required
  • Most ERP deployments

Security Considerations

# Multi-Company (Single DB):
# Data isolation via Odoo record rules
# Users see only their company's data
# Configurable per model and field
# Risk: misconfigured rules can leak data

# Multi-Database:
# Complete physical isolation
# Different credentials per database
# No risk of cross-tenant data leakage
# Required for true SaaS multi-tenancy

Performance Considerations

Single database is more efficient. PostgreSQL caches are shared, connection pooling is simpler, and Odoo's ORM caches work optimally. Multi-database deployments consume more memory (separate caches per DB) and may have slower cold-start times when switching between databases.

Configuration

# Single database (recommended):
# odoo.conf
db_name = production_db
dbfilter = ^production_db$

# Multi-database:
# odoo.conf
# db_name = (leave empty)
dbfilter = .*
list_db = True  # or False for security

DeployMonkey Approach

DeployMonkey uses a single-database-per-instance architecture. Each customer gets their own Odoo instance with a dedicated database, providing isolation without the complexity of multi-database configurations. Multi-company is used within each instance for organizational structure.