Szeto Consultants

Diskusi & Tanya: Cara Konfigurasi Informasi Spesifik di Database PostgreSQL Odoo

Diskusi & Tanya: Cara Konfigurasi Informasi Spesifik di Database PostgreSQL Odoo

Diposting pada 01 Jun 2026, 19:54
Ditanyakan oleh: Bambang

Halo rekan-rekan praktisi IT dan pengguna Odoo sekalian,

Saya Bambang dari tim IT di perusahaan kami, PT. Maju Jaya Bersama. Saat ini kami sedang mengimplementasikan dan menggunakan Odoo (kebetulan versi 16), dengan server database-nya berjalan di PostgreSQL.

Saya sedang mencari insight atau best practice terkait bagaimana cara yang paling efektif dan aman untuk mengkonfigurasi atau lebih tepatnya mengelola dan menyesuaikan informasi/data spesifik yang ada langsung di database PostgreSQL Odoo.

Kadang ada kebutuhan untuk melakukan penyesuaian data yang tidak bisa atau agak sulit dilakukan langsung dari interface Odoo, misalnya:
Mengubah nilai-nilai pada parameter sistem tertentu yang hanya terekspos di level DB.
Melakukan bulk update atau cleanup data master di tabel-tabel tertentu.
Menyesuaikan konfigurasi yang berdampak langsung ke perilaku Odoo, tapi pengaturannya disimpan di database.

Nah, kira-kira bagaimana ya pendekatan yang aman dan direkomendasikan untuk skenario seperti ini? Apakah ada tool khusus, atau mungkin panduan SQL query yang sebaiknya digunakan agar integritas data Odoo tetap terjaga dan tidak menimbulkan efek samping yang tidak diinginkan?

Mohon sharing pengalaman atau tipsnya ya. Terima kasih banyak sebelumnya atas pencerahannya!

Salam,

Balasan (1)

Admin Odoo ForumAdmin & AI Support01 Jun 2026, 19:54
Halo Mas Bambang dari PT. Maju Jaya Bersama! Salam kenal dan selamat datang di komunitas Odoo Indonesia. Senang sekali bisa berbagi insight dengan tim IT yang sedang serius mengimplementasikan Odoo 16.

Pertanyaan Mas Bambang ini sangat relevan dan seringkali menjadi dilema bagi para praktisi IT. Ada kalanya kita memang butuh "turun tangan" langsung ke database untuk skenario yang disebutkan, seperti parameter sistem yang tersembunyi atau bulk update data. Namun, perlu diingat bahwa interaksi langsung dengan database Odoo ini seperti pedang bermata dua; sangat powerful, tapi juga sangat berisiko jika tidak dilakukan dengan hati-hati.

Mari kita bahas pendekatan yang aman dan direkomendasikan ya.



1. Prioritaskan Opsi via Odoo Interface atau Odoo Shell

Sebelum memutuskan untuk menyentuh database secara langsung, selalu usahakan untuk mencari cara lewat:

Odoo User Interface (UI): Mungkin ada fitur tersembunyi di menu Settings > Technical (aktifkan Developer Mode terlebih dahulu), seperti System Parameters, Automated Actions, atau Scheduled Actions yang bisa membantu.
Odoo Shell (Python): Ini adalah cara yang paling direkomendasikan untuk manipulasi data tingkat lanjut. Odoo Shell memungkinkan Mas Bambang berinteraksi dengan environment Odoo dan ORM-nya (Object-Relational Mapping) menggunakan kode Python. Keuntungannya, semua validasi, constraint, dan logika bisnis Odoo akan tetap berjalan.

Cara Akses Odoo Shell: Dari terminal server Odoo, jalankan perintah kurang lebih seperti ini: ./odoo-bin shell -c /path/to/odoo.conf -d your_database_name
Kapan Digunakan: Bulk update data master (`res.partner`, `product.template`), membuat atau mengubah record secara programmatic, menyesuaikan parameter sistem (`ir.config_parameter`), atau menjalankan method tertentu yang tidak ada di UI.

Menggunakan Odoo Shell jauh lebih aman daripada SQL murni, karena Mas Bambang berinteraksi dengan objek Odoo, bukan langsung dengan tabel database. Misalnya, untuk update harga produk, Odoo Shell akan memicu semua logika terkait (seperti re-kalkulasi margin, dll.) yang mungkin terlewat jika diubah langsung via SQL.



2. Jika Harus Menggunakan SQL Langsung (Dengan Sangat Hati-Hati!)

Jika Odoo Shell pun tidak bisa mengakomodir kebutuhan spesifik Mas Bambang, barulah kita mempertimbangkan SQL langsung. Pendekatan ini harus menjadi pilihan terakhir dan dilakukan dengan ekstra hati-hati.

Tools Database Client:
psql: Command line client bawaan PostgreSQL. Sangat powerful.
pgAdmin: GUI (Graphical User Interface) client yang populer untuk PostgreSQL.
DBeaver: Universal database client yang juga mendukung PostgreSQL.

Tabel Penting yang Sering Terlibat:
ir_config_parameter: Tabel ini menyimpan banyak parameter konfigurasi sistem Odoo yang tidak selalu terekspos di UI. Contoh: `web.base.url`, `mail.force.smtp.from`, dll.
ir_property: Digunakan untuk menyimpan nilai field dinamis atau field yang memiliki nilai berbeda untuk setiap perusahaan (multi-company).
Tabel Master Data: Seperti res_partner (mitra), product_template (template produk), product_product (varian produk), account_move (jurnal akuntansi), dll.
Tabel Konfigurasi Lainnya: Tergantung modul yang digunakan, seperti `res_users` (pengguna), `res_groups` (grup akses), `ir_model_access` (hak akses model).

Jenis Query yang Umum Digunakan:
SELECT: Untuk melihat dan memahami struktur serta isi data. Ini adalah langkah pertama yang wajib dilakukan sebelum perubahan.
UPDATE: Untuk mengubah nilai data yang sudah ada. Selalu gunakan klausa WHERE untuk membatasi perubahan hanya pada baris yang diinginkan. Contoh: UPDATE ir_config_parameter SET value = 'new_value' WHERE key = 'parameter_key';
INSERT: Untuk menambah data baru. Sangat berisiko jika tidak memahami semua relasi dan constraint Odoo.
DELETE: Untuk menghapus data. Ini adalah query paling berbahaya! Odoo memiliki banyak relasi cascade, sehingga menghapus satu record bisa memicu penghapusan banyak record terkait lainnya tanpa Mas Bambang sadari. Hindari DELETE jika tidak benar-benar yakin dan telah melakukan backup lengkap.



3. Panduan dan Best Practices Keamanan

Untuk memastikan integritas data tetap terjaga dan tidak menimbulkan efek samping yang tidak diinginkan, ikuti tips ini:

Backup Database Lengkap: Ini adalah aturan emas nomor satu. Sebelum melakukan perubahan apapun secara langsung di database, pastikan Mas Bambang sudah memiliki backup database yang valid dan bisa di-restore.
Gunakan Lingkungan Tes (Staging/Development): Jangan pernah melakukan perubahan langsung di database produksi tanpa mengujinya terlebih dahulu di lingkungan non-produksi yang mirip. Ini krusial untuk melihat efek samping atau kesalahan yang mungkin terjadi.
Pahami Struktur Database Odoo: Cobalah untuk memahami bagaimana model Odoo memetakan ke tabel di PostgreSQL. Odoo sering menggunakan konvensi penamaan seperti `nama_model` untuk tabel, dan `_id` untuk kolom relasional.
Dokumentasikan Perubahan: Catat setiap perubahan yang Mas Bambang lakukan secara langsung di database (query yang dijalankan, tanggal, dan alasan). Ini akan sangat membantu untuk audit trail atau jika ada masalah di kemudian hari.
Hindari Perubahan Schema: Dilarang keras mengubah struktur tabel (menambah/mengubah kolom, indeks, dll.) langsung di PostgreSQL. Biarkan Odoo ORM yang mengelola schema database. Perubahan schema harus dilakukan melalui modul Odoo (via `_columns` atau `_inherits`).
Minta Bantuan Ahli (Jika Ragu): Jika Mas Bambang tidak yakin dengan dampak suatu query, lebih baik berkonsultasi dengan praktisi Odoo lain yang lebih berpengalaman atau mencari informasi di dokumentasi Odoo atau forum komunitas.



Jadi, intinya adalah utamakan Odoo Shell karena ia berinteraksi dengan Odoo ORM, yang menjaga konsistensi data. Jika terpaksa harus SQL langsung, selalu ingat backup, pakai lingkungan tes, dan berhati-hati dengan UPDATE, serta hindari DELETE jika memungkinkan.

Semoga pencerahan ini membantu Mas Bambang dan tim IT PT. Maju Jaya Bersama dalam mengelola Odoo-nya dengan aman dan efektif ya! Jangan sungkan kalau ada pertanyaan lanjutan.

Salam Odoo!

Berikan Tanggapan

⚠️ Anti-Spam Aktif: Dilarang menyertakan tautan/URL di dalam form ini.
Butuh Konsultasi Odoo? 👋
Scroll to Top