Skip to Content
Menu
This question has been flagged
1 Reply
3622 Views

Does anyone have some idea on how we can set up a multi odoo instance sharing the same database ? 

And do you have some ideas on how odoo handles the concurent updates, data conflict and how to handle sessions and cache in this type of architecture 


Thanks in advance,

Avatar
Discard
Best Answer

Setting up multiple Odoo instances sharing the same database is commonly referred to as Odoo multi-instance deployment. Each instance represents a separate Odoo server, while they all interact with the same database. This setup is useful for scenarios where you want to isolate different environments (e.g., production, staging, testing) while sharing a single database.


Here are the general steps to set up a multi-instance deployment:

1. Install Odoo:

Install Odoo on each server where you want to set up an instance. You can use the same Odoo codebase for all instances.

2. Configure Odoo Instances:

For each Odoo instance, configure the following settings in the odoo.conf file:


[options]

addons_path = /path/to/your/addons,/path/to/common/addons


Ensure that the addons_path includes the path to your custom addons and the path to common addons shared among all instances.

3. Database Configuration:


All instances should connect to the same PostgreSQL database. Configure the dbfilter option in the odoo.conf file for each instance:



[options]

dbfilter = ^your_database_name$


This ensures that each instance only sees its specific database.

4. Handling Concurrent Updates and Data Conflicts:


Odoo handles concurrent updates and data conflicts at the database level through the PostgreSQL database. PostgreSQL supports transactions and ensures data consistency.

5. Handling Sessions and Cache:


Odoo uses a server-side session mechanism. Each Odoo instance maintains its own session. However, shared data like cache and sessions can be managed using external tools:


    Load Balancer:

        Use a load balancer to distribute traffic among multiple Odoo instances.

        Sticky sessions can be configured to make sure requests from the same user are directed to the same Odoo instance.


    Shared Cache:

        If necessary, consider using a shared cache system (e.g., Redis) to store common cache data.


    Session Management:

        Odoo maintains its own session mechanism, but you can configure the load balancer to manage sessions or use an external session management system.


Additional Considerations:


    Filestore:

        If file storage is shared among instances, ensure that the filestore is accessible to all Odoo instances.


    Scheduled Jobs:

        Be cautious with scheduled jobs. Ensure that jobs are distributed among instances or schedule them only on one instance.


    Version Consistency:

        Keep all instances running the same version of Odoo to avoid compatibility issues.


    Logging and Monitoring:

        Set up logging and monitoring to identify issues and track performance.


Remember, while sharing a database among multiple Odoo instances can offer benefits in terms of resource utilization and load balancing, it also introduces complexities in terms of coordination, consistency, and potential conflicts. Always thoroughly test such deployments in a staging environment before deploying in production.

Avatar
Discard
Related Posts Replies Views Activity
1
May 22
3291
1
Apr 22
4521
2
Nov 20
3566
1
Aug 20
2452
2
Nov 18
7838