Update Module Without Restarting Server Odoo

Bismillah.

Assalamu'alaikum Warahmatullahi Wabarakaatuh.

    Pada kesempatan kali ini saya membagikan cara update module odoo tanpa restart. Biasanya ketika kita sedang development odoo, seringkali kita melakukan restart service odoo lalu melakukan update modulenya. ada cara untuk melakukan update module tanpa restart service odoo yaitu dengan menambahkan parameter --dev=value.


    Pertama install inotify dengan menggunakan command di bawah ini.

     pip3 install inotify

Opsi pada --dev ada berbagai macam, antara lain all,reload,pudb | wdb | ipdb | pdb,werkzeug dan xml contohnya seperti command di bawah ini.

    python ../odoo14/odoo-bin -c ../conf/odoo14.conf --dev xml,reload,qweb,werkzeug 

Penjelasan:

reload : ketika membuat perubahan syntax pada python biasanya kita restart service untuk melihat perubahannya, dengan menggunakan --dev=reload maka akan restart odoo secara otomatis ketika mengubah syntax dan save.

qweb : ketika membuat template QWeb, kita dapat mendebug menggunakan t-debug attribute jika kita menambahkan pada dev mode dengan --dev=qweb

werkzeug :
Odoo menggunakan werkzeug untuk meng-handle HTTP Request. jika menggunakan --dev=werkzeug maka pada browser akan muncul werkzeug debugger ketika exception tergenerate

xml : Biasanya ketika mengubah struktur yang ada pada view kita restart service odoo dan update module terkait. Dengan menggunakan --dev=xml maka kita hanya perlu reload / refresh browser saja, tidak perlu restart dan update module

pudb | wdb | ipdb | pdb : untuk mengaktifkan Python Debugger (PDB) untuk mendapatkan informasi lebih lanjut mengenai error, kita dapat menggunakan --dev=pdb untuk mengaktifkan PDB

all : jika menggunakan --dev=all maka semua attribute diatas akan aktif

Kelemahan fitur ini adalah jika kita membuat perubahan ke struktur database seperti menambahkan field, maka --dev=reload ini tidak akan bisa digunakan sehingga perlu update modulenya. opsi --dev=reload hanya berfungsi untuk python bussiness logic seperti menambahkan method atau merubah logic pada method. Kemudian jika menambahkan view baru / menu opsi --dev=xml tidak akan mengubah tampilan user interface, kita harus meng-update module