Odoo 20 changes the self-hosted baseline

Odoo 20 requires Python 3.12 or later and PostgreSQL 16 or later for source-based on-premise installations. The previous documented minimums were Python 3.10 and PostgreSQL 13. Organisations preparing a new deployment or upgrade therefore need to review both the application runtime and database platform. (Odoo 20.0 Docs: On Premise Source)

A server that met the earlier minimums does not automatically meet the Odoo 20 requirements. Infrastructure readiness should be assessed separately from the application upgrade, including the versions used in development, testing, migration rehearsals and production. (Odoo 20.0 Docs: On Premise Source)

These minimum versions do not define a complete deployment design. Capacity, architecture, maintenance and recovery arrangements still need to be determined for the organisation’s environment. The immediate task is to identify where the existing infrastructure differs from Odoo 20’s documented baseline. (Odoo 20.0 Docs: On Premise Source)

Python 3.12 becomes the minimum

Odoo 20 raises its minimum Python version from 3.10 to 3.12. Teams installing from source must use Python 3.12 or later rather than relying on the interpreter already available on an existing server. (Odoo 20.0 Docs: On Premise Source)

Odoo’s Python package obtains the minimum requirement from MIN_PY_VERSION in the Odoo 20 release metadata. This provides a repository-level reference that technical teams can check alongside the installation documentation. (Odoo Odoo Blob)

Before an upgrade is approved, administrators should record the Python version selected by development environments, deployment automation, test systems and production hosts. Scripts that call python or python3 should be checked to confirm which interpreter they resolve to in each environment. (Odoo 20.0 Docs: On Premise Source; Odoo Odoo Blob)

Custom add-ons and installation procedures should also be tested with the intended Python 3.12 environment. Odoo’s minimum establishes the application requirement, but organisations must still validate their own code and deployment processes against that interpreter. (Odoo 20.0 Docs: On Premise Source)

PostgreSQL 16 changes the database requirement

The minimum supported PostgreSQL release increases from version 13 to version 16. Organisations running an earlier major version will need to address the database gap as part of the Odoo 20 project rather than treating PostgreSQL as an unchanged dependency. (Odoo 20.0 Docs: On Premise Source)

Planning should identify the current PostgreSQL version, the target environment and the process for validating the upgraded Odoo database. Although the application and database changes may be managed within the same project, each requires appropriate testing, backup and recovery decisions. (Odoo 20.0 Docs: On Premise Source)

The PostgreSQL 16 baseline should also be used in non-production environments. Development, staging and migration rehearsals conducted with another major database version would not reproduce the documented Odoo 20 requirement. Version consistency should therefore be checked before test results are accepted. (Odoo 20.0 Docs: On Premise Source)

Odoo’s installation documentation confirms the minimum version but does not prescribe how an individual organisation should move its data. The migration method should be selected according to the existing environment and verified through a tested procedure. (Odoo 20.0 Docs: On Premise Source)

AI features add a pgvector requirement

Self-hosted Odoo installations using Odoo AI features require the pgvector PostgreSQL extension. This is conditional rather than a general requirement for every on-premise installation. (Odoo 20.0 Docs: On Premise Source)

The project scope should state whether Odoo AI features will be used. If they are included, infrastructure teams need to prepare and maintain pgvector as part of the PostgreSQL environment. The corresponding test environment should also include the extension. (Odoo 20.0 Docs: On Premise Source)

If AI functionality is excluded from the initial deployment, that decision should be recorded. It should be reviewed if the planned feature set changes, as enabling the relevant AI features changes the database extension requirements. (Odoo 20.0 Docs: On Premise Source)

Package support depends on the operating system

Odoo’s current version 20 package documentation identifies Ubuntu 24.04 LTS for the Debian package and Fedora 42 for the RPM package. Organisations using packaged installations should compare these targets with their selected operating system before choosing an installation method. (Odoo 20.0 Docs: On Premise Packages)

Package targets are separate from the Python and PostgreSQL minimums. Meeting the runtime and database requirements does not establish that a particular Odoo package is intended for the operating-system release in use. Package compatibility needs to be checked against Odoo’s package documentation. (Odoo 20.0 Docs: On Premise Source; Odoo 20.0 Docs: On Premise Packages)

Teams relying on the documented Debian package should verify that the planned host uses Ubuntu 24.04 LTS. Those taking the RPM route should make the equivalent check for Fedora 42. A different operating system may require reconsideration of the installation approach. (Odoo 20.0 Docs: On Premise Packages)

The package documentation should be checked again when deployment begins. An operating-system or package decision made early in the project should not replace verification against the documentation available at installation time. (Odoo 20.0 Docs: On Premise Packages)

Windows carries a production warning

Odoo discourages using its Windows packaging for production deployments because of associated limitations and risks. The availability of a Windows installer should not be interpreted as a production recommendation. (Odoo 20.0 Docs: On Premise Packages)

If Windows remains under consideration for production, the platform decision should explicitly account for Odoo’s warning. The organisation should document why Windows is being selected despite that guidance and assess the stated limitations and risks as part of deployment approval. (Odoo 20.0 Docs: On Premise Packages)

What to verify before approving an upgrade

Start with an inventory of the existing environment. Record the Python interpreter, PostgreSQL major version, operating-system release, installation method and whether Odoo AI features are in scope. Compare these details with the requirements documented for Odoo 20. (Odoo 20.0 Docs: On Premise Source; Odoo 20.0 Docs: On Premise Packages)

Next, check consistency across environments. Development, staging, migration rehearsals and production should use the intended Python and PostgreSQL baseline. Where a packaged deployment is planned, the operating-system target should match the relevant Debian or RPM package documentation. (Odoo 20.0 Docs: On Premise Source; Odoo 20.0 Docs: On Premise Packages)

Confirm the deployment scope and installation method. A source installation, Debian package, RPM package and Windows installer are covered by different parts of Odoo’s guidance. The inclusion of Odoo AI features also determines whether pgvector is required. (Odoo 20.0 Docs: On Premise Source; Odoo 20.0 Docs: On Premise Packages)

The upgrade plan should include checks for custom add-ons, automation scripts and database migration procedures in the target environment. These checks should use Python 3.12 or later and PostgreSQL 16 or later so that testing reflects Odoo 20’s documented minimums. (Odoo 20.0 Docs: On Premise Source)

Finally, verify the documentation again before implementation. The documented Odoo 20 baseline is Python 3.12 or later and PostgreSQL 16 or later, with pgvector required for self-hosted installations using Odoo AI features. The current package targets are Ubuntu 24.04 LTS for Debian packages and Fedora 42 for RPM packages, while Odoo discourages Windows packaging for production. (Odoo 20.0 Docs: On Premise Source; Odoo 20.0 Docs: On Premise Packages)