So I tried Odoo for the first time

RMAG news

From web developer’s viewpoint, I’m going to setup Odoo for the first time. It is going to installed on my local computer (Ubuntu 22.04) and the installation will be from community edition.

Prerequisites

Git, Python (3.10+), Pip and basics (IDEs and stuff)
PostgreSQL database (can be community edition)

Initial steps

This is coming from Odoo’s official documentation.

Fork the GitHub repo for the community edition.
Create a new postgres user. Odoo does not accept postgres default user.

sudo -u postgres createuser -d -R -S $USER
createdb $USER

Running Odoo for the first time

The two new databases created on PostgreSQL are: $USER whatever your username is and the other one called mydb. Run this command after you clone the Odoo repo and cd inside.

python3 odoo-bin –addons-path=addons -d mydb

After the server has started (the INFO log odoo.modules.loading: Modules loaded. is printed), open http://localhost:8069 in a web browser and log into the Odoo database with the base administrator account: use admin as the email and, again, admin as the password.

Check the database schema

I ran the ERD for database tool in pgAdmin to inspect the database design for the Odoo community base platform.

From the start there are 114 tables linked in a mesh. So, I chose to dig into the database structure a bit further.

Findings

Odoo’s database model is quite mature as of Version 17 and incorporable to wide contextual range.
The database structure is monolith. Therefore, decoupling into possible micro-services would be a good prospect as some modules requires scaling different than the other.
You can refer to Server Framework 101 guide in order to develop your own modules.

References

Odoo on-premise setup from source guide