Skip ke Konten
Modern office building
Info & Update

Perbedaan Teknis antara Odoo 19 dan Odoo 20

8 min read 123 views
Share:

Odoo 19 vs Odoo 20: Perbedaan Teknis dan Panduan Migrasi

Perbandingan Teknis untuk Pengembang Komunitas Odoo

Untuk pengembang yang membangun addon kustom untuk Odoo Community, membandingkan Odoo 19 dan Odoo 20 melibatkan jauh lebih banyak daripada perubahan pada struktur folder modul.

Ada 10 area teknis kunci yang harus dievaluasi dengan cermat oleh para pengembang:

  1. Kerangka Kerja Inti & ORM — Perubahan pada API Python, model, bidang, dan metode.
  2. Database & PostgreSQL — Perubahan pada skema basis data, hubungan, dan persyaratan sistem.
  3. Security & Access Rights — Perubahan pada ACLs, Record Rules, Groups, dan permissions.
  4. XML Views & XPath — Perubahan pada view structures and inheritance mechanisms.
  5. JavaScript & OWL — Perubahan pada the frontend framework, components, dan assets.
  6. API & Integration — Perubahan pada external APIs, controllers, authentication, dan integrations.
  7. Module Structure & Manifest — Perubahan pada addon structures, dependencies, dan module declarations.
  8. Background Jobs & Automation — Perubahan pada cron jobs, scheduled actions, dan background processing.
  9. Deployment & Dependencies — Persyaratan kompatibilitas untuk Python, PostgreSQL, Linux, and external libraries.
  10. Migration & Compatibility — Dampak pada addon kustom dan proses peningkatan secara keseluruhan.

Catatan Penting: Mulai 2 November 2026, perbedaan teknis harus diverifikasi terhadap dokumentasi resmi Odoo 20 dan kode sumber. Perubahan yang telah dikonfirmasi harus jelas dibedakan dari prediksi, diskusi komunitas, atau klaim teknis yang belum diverifikasi..

1. Ikhtisar Perbedaan Teknis Utama

Analisis teknis yang tersedia menunjukkan bahwa Odoo 20 dirilis pada September 2026, memperkenalkan perubahan signifikan pada tingkat kerangka dibandingkan dengan Odoo 19.

Perubahan ini melampaui sekadar mengganti nama file CSV keamanan.

Area TeknisOdoo 19Odoo 20Dampak
Minimum Python VersionPython 3.10Python 3.12High
Minimum PostgreSQL VersionPostgreSQL 13PostgreSQL 16High
Access Rightsir.model.accessir.accessCritical
Record RulesSeparate ir.rule modelDikonsolidasikan menjadi ir.accessCritical
Security CSVir.model.access.csvir.access.csvCritical
Frontend FrameworkOwl 2.8Owl 3 with compatibility layerHigh
Icon FrameworkFont Awesome / Odoo IconsMaterial SymbolsMedium
Binary FieldsBase64-based representationBinaryValueHigh
Attachment APIdatasrawHigh
Configuration Parametersget_param() / set_param()Typed getters and settersHigh
ORM Groupingread_group()Replacement grouping APIHigh
Timezone HandlingpytzzoneinfoMedium
Web ServerWerkzeug-basedChanges to HTTP server implementationMedium
Module MigrationManual adjustments and scriptsAdditional upgrade scriptsMedium

Referensi: Perbandingan teknis antara cabang Odoo 19.0 dan 20.0, termasuk analisis Odoo Digest yang diterbitkan pada 24 Oktober 2026.

Catatan Verifikasi: Tabel ini merangkum perubahan teknis yang dilaporkan dalam materi yang disediakan. Perubahan individu harus dikonfirmasi terhadap cabang kode sumber Odoo yang relevan sebelum diperlakukan sebagai persyaratan migrasi yang wajib.

2. Perubahan Kerangka Keamanan — Dampak Kritis

Salah satu perubahan yang paling signifikan yang dilaporkan dalam Odoo 20 berkaitan dengan arsitektur keamanannya.

Odoo 19 Security Architecture

Odoo 19 menggunakan dua model utama untuk mengelola keamanan:

self.env['ir.model.access']
self.env['ir.rule']

Model-model ini memiliki tujuan yang berbeda:

  • ir.model.access mengelola izin akses tingkat model, termasuk Create, Read, Update, and Delete (CRUD).
  • ir.rule mengelola pembatasan akses tingkat catatan menggunakan aturan berbasis domain.

Arsitektur Keamanan Odoo 20

Menurut perubahan yang dilaporkan, Odoo 20 mengkonsolidasikan mekanisme ini menjadi:

self.env['ir.access']

Ini berarti bahwa perubahan tersebut berpotensi melampaui konvensi penamaan file CSV ke arsitektur manajemen keamanan yang mendasarinya.

Dampak pada Addon Kustom

Pengembang harus dengan cermat meninjau area berikut:

  • Referensi ke model keamanan lama harus diidentifikasi dan dipindahkan jika perlu.
  • Struktur file keamanan dan deklarasi mungkin memerlukan penyesuaian.
  • Kode kustom yang membuat atau memodifikasi catatan ir.rule harus ditinjau.
  • Access-control pengujian harus mencakup kelompok pengguna, CRUD permissions, domain restrictions, dan Skenario multi-company.
  • Migrasi keamanan harus mengikuti prosedur peningkatan resmi dan mencakup pengujian regresi yang komprehensif.

3. Perubahan ORM dan API Python

Beberapa API warisan dilaporkan telah dihapus, diganti, atau direfaktor di Odoo 20.

Perubahan ini dapat secara langsung mempengaruhi logika bisnis kustom dan integrasi backend.

API / ComponentReported Odoo 20 ChangeRecommended Developer Action
read_group()RemovedMigrate to the supported grouping API
odoo.osv.expressionRemovedRefactor domain expressions
@ormcache_contextRemovedReview caching strategies
check_access_rights()RemovedMigrate access validation logic
check_access_rule()RemovedAdapt to the updated security API
_check_recursion()RemovedReview recursive validation logic
group_operatorRemovedPerbarui deklarasi agregasi
toggle_active()RemovedRefactor active/archive operations
ir.attachment.datasRemovedGunakan bahan mentah yang sesuai API

Dampak Teknis Potensial

Perubahan ini dapat memperkenalkan beberapa masalah kompatibilitas:

1. Kegagalan Instalasi Modul

Addon kustom mungkin gagal saat instalasi jika mereka merujuk pada API yang dihapus atau tidak kompatibel.

2. Eksepsi Waktu Jalan

Metode yang ada dapat memicu kesalahan ketika dipanggil oleh proses bisnis.

3. Masalah Pengolahan Data

Perubahan pada pengelompokan ORM, agregasi, atau penanganan data biner dapat mempengaruhi laporan, dasbor, dan integrasi.

4. Kegagalan Validasi Keamanan

Perubahan pada metode pemeriksaan akses dapat mempengaruhi logika otorisasi kustom.

5. Ketidakcocokan Logika Bisnis

Metode Python kustom mungkin memerlukan refactoring untuk disesuaikan dengan kerangka ORM yang diperbarui. Bahkan ketika struktur folder addon dan manifest tetap tidak berubah, kompatibilitas tidak dijamin.

Rekomendasi: Lakukan audit kode sumber untuk mengidentifikasi API yang sudah tidak digunakan, metode yang dihapus, dan operasi ORM yang tidak kompatibel sebelum melakukan upgrade.

4. Perubahan JavaScript dan Kerangka OWL

Odoo 20 dilaporkan memperkenalkan transisi dari Owl 2.8 ke Owl 3, membawa perubahan pada komponen frontend, direktif, dan mekanisme rendering.

Perbandingan Framework Frontend

Odoo 19Odoo 20
t-portalt-custom-portal
t-modelt-custom-model
useEffectuseLayoutEffect
Owl 2 componentsOwl 3 components with a compatibility layer
Font Awesome iconsMaterial Symbols

Pertimbangan Kompatibilitas

Odoo 20 dilaporkan menyertakan lapisan kompatibilitas untuk mendukung beberapa komponen Owl 2 yang ada. Namun, kompatibilitas tidak selalu berlaku untuk setiap implementasi kustom..

Pengembang harus secara khusus mengevaluasi addon yang:

  • Perbaiki komponen klien web Odoo asli.
  • Perpanjang Owl components dan templates.
  • Daftarkan layanan kustom atau komponen frontend.
  • Modifikasi JavaScript registries.
  • Implementasikan widget kustom dan dasbor interaktif.
  • Gunakan aset JavaScript kustom atau Library frontend.
  • Menimpa perilaku standar situs web Odoo.

5. Perubahan Database dan Penyebaran

Perubahan pada persyaratan minimum Python dan PostgreSQL dapat secara signifikan mempengaruhi lingkungan pengembangan, staging, dan produksi.

Persyaratan Migrasi Infrastruktur

ComponentDirekomendasikan Migration Action
PythonPerbarui ke versi runtime yang didukungUpgrade to a supported runtime version
PostgreSQLRencanakan migrasi basis data ke PostgreSQL 16 atau versi lain yang didukung secara resmi
Python PackagesVerifikasi kompatibilitas semua paket di requirements.txt
Timezone HandlingRefactor pytz implementasi di mana diperlukan
HTTP ServerTinjau konfigurasi reverse proxy dan penyebaran
DockerBangun kembali Image container menggunakan ketergantungan Odoo 20 yang kompatibel
Database MigrationIkuti prosedur peningkatan basis data resmi daripada hanya mengganti kode sumber

Pertimbangan Teknis Tambahan

Kecocokan Sistem Operasi

Verifikasi bahwa distribusi Linux mendukung Python, PostgreSQL, dan pustaka sistem yang diperlukan.

Konfigurasi Reverse Proxy

Tinjau pengaturan Nginx atau proxy terbalik lainnya, termasuk pengaturan rute permintaan, waktu tunggu, dan konfigurasi terkait WebSocket.

External Libraries

Validasi kompatibilitas dengan paket Python pihak ketiga yang digunakan oleh addon kustom.

Database Backup and Recovery

Tetapkan strategi cadangan dan pemulihan yang telah diuji sebelum melakukan migrasi produksi.

Environment Isolation

Deploy Odoo 20 di lingkungan pengembangan atau staging terpisah sebelum memigrasi beban kerja produksi.

Pendekatan Penerapan yang Direkomendasikan

Untuk penerapan berbasis Linux yang menggunakan Nginx, PostgreSQL, dan beberapa addon kustom, proses migrasi yang terkontrol sangat dianjurkan. Lingkungan produksi harus tetap tidak berubah sampai pengujian fungsional, integrasi, keamanan, dan kinerja telah selesai dilakukan dengan sukses.

7. Alat Migrasi Odoo 19 ke Odoo 20

Odoo 20 dilaporkan menyediakan perintah upgrade_code untuk membantu pengembang dalam menyesuaikan kode sumber addon kustom.

Langkah 1 — Lakukan Uji Coba Kering

Jalankan utilitas migrasi dalam mode simulasi sebelum menerapkan perubahan:

./odoo-bin upgrade_code \
  --addons-path=/opt/odoo/custom_addons \
  --from 19.0 \
  --dry-run

Tujuan dari dry run adalah untuk mengidentifikasi potensi modifikasi kode sumber tanpa mengubah file addon secara langsung, di mana didukung oleh alat yang terpasang.

Langkah 2 — Laksanakan Peningkatan Kode

Setelah membuat cadangan dan cabang migrasi Git yang khusus:

./odoo-bin upgrade_code \
  --addons-path=/opt/odoo/custom_addons \
  --from 19.0

Langkah 3 — Lakukan Migrasi Owl 3

Untuk perubahan yang terkait dengan frontend, perintah migrasi yang dilaporkan adalah:

./odoo-bin upgrade_code \
  --addons-path=/opt/odoo/custom_addons \
  --script owl3-migration

Penting: Perintah-perintah ini diambil dari materi teknis yang disediakan. Ketersediaan, sintaksis, dan opsi yang didukung harus diverifikasi terhadap antarmuka baris perintah Odoo 20 yang sebenarnya sebelum dieksekusi.

Limitasi Alat Migrasi

Utilitas migrasi otomatis dapat membantu dalam transformasi kode sumber, tetapi mereka tidak dapat menjamin kompatibilitas yang lengkap.

Validasi manual tetap diperlukan untuk:

  • Logika bisnis kustom
  • Security permissions
  • Record Rules
  • JavaScript and Owl components
  • Database migrations
  • External API integrations
  • Kustom reports dan dashboards
  • Third-party dependencies

Migrasi otomatis yang berhasil tidak selalu berarti bahwa sebuah addon siap untuk produksi.​

8. Referensi Teknis

Sumber resmi berikut harus digunakan untuk verifikasi teknis lebih lanjut dan penilaian kompatibilitas:

  1. Odoo 20 Developer Documentation
  2. Odoo 20 ORM API Reference
  3. Odoo 20 Security Framework
  4. Odoo 20 Source Code — GitHub

Sumber daya ini harus dikonsultasikan untuk mengonfirmasi perubahan pada API kerangka kerja, model keamanan, ketergantungan, dan prosedur migrasi.

9. Kesimpulan dan Rekomendasi

Migrasi dari Odoo 19 ke Odoo 20 melibatkan jauh lebih banyak daripada sekadar memperbarui versi manifest modul atau mengganti nama file konfigurasi keamanan.

Proses migrasi mungkin memerlukan penyesuaian substansial pada arsitektur backend, komponen frontend, mekanisme keamanan, infrastruktur basis data, dan integrasi eksternal.

Tiga area prioritas tertinggi untuk penilaian teknis adalah:

  1. Security Framework Migration — Meninjau ACL, Aturan Rekaman, grup pengguna, dan mekanisme otorisasi.
  2. Python and ORM API Refactoring — Mengidentifikasi API yang dihapus, tidak lagi didukung, atau dimodifikasi dan memperbarui logika bisnis kustom.
  3. Owl 3 Compatibility Testing — Memvalidasi komponen frontend kustom, ekstensi JavaScript, dan antarmuka interaktif.

Topics: Info & Update