From b9d3841d0132995b756eea16a4e4011134faef94 Mon Sep 17 00:00:00 2001 From: odoo <2+odoo@noreply.localhost> Date: Sun, 31 May 2026 15:35:57 +0700 Subject: [PATCH] Add clear_sessionDB_odoo.txt --- clear_sessionDB_odoo.txt | 82 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 clear_sessionDB_odoo.txt diff --git a/clear_sessionDB_odoo.txt b/clear_sessionDB_odoo.txt new file mode 100644 index 0000000..14374ec --- /dev/null +++ b/clear_sessionDB_odoo.txt @@ -0,0 +1,82 @@ +Untuk menghapus session yang tersimpan di database setiap malam secara otomatis, cara terbaik dan paling efisien adalah dengan memanfaatkan **Cron Job** pada level *database server* (PostgreSQL) atau melalui fitur **Scheduled Actions** bawaan Odoo. + +Karena Anda menggunakan modul `session_db`, semua data session lama yang sudah kedaluwarsa (*expired*) akan menumpuk di salah satu tabel database (biasanya bernama `session_db_session` atau `ir_session`). + +Berikut adalah 2 metode otomatis yang bisa Anda gunakan: + +--- + +### Metode 1: Menggunakan Scheduled Actions Odoo (Paling Direkomendasikan) + +Sebagian besar modul `session_db` dari OCA atau komunitas sudah menyediakan fungsi *cleanup* (pembersihan) otomatis yang terintegrasi dengan fitur **Scheduled Actions (Automated Actions)** Odoo. + +1. Masuk ke Odoo menggunakan akun **Administrator**. +2. Aktifkan **Developer Mode** (Mode Pengembang). +3. Buka menu **Settings** > **Technical** > **Automation** > **Scheduled Actions**. +4. Cari aksi yang bernama seperti: +* `Session: Cleanup expired sessions` +* `Session DB: Purge sessions` +* *(Atau cari dengan kata kunci "session" di kolom pencarian)*. + + +5. Klik aksi tersebut, lalu ubah konfigurasinya: +* **Execute Every:** `1 Days` +* **Next Execution Date:** Atur ke jam yang Anda inginkan (misal nanti malam jam `00:00:00`). +* **Active:** Pastikan dalam posisi *True* (Centang). + + + +> 💡 **Kelebihan:** Metode ini sangat aman karena Odoo akan menghapus session berdasarkan umur kedaluwarsa yang logis, sehingga pengguna yang sedang aktif tidak akan tiba-tiba ter-log out. + +--- + +### Metode 2: Menggunakan Cron Job Script (Eksternal / Sisi Host) + +Jika modul yang Anda gunakan tidak menyediakan Scheduled Actions, atau Anda ingin memastikan database benar-benar bersih total setiap jam 12 malam tanpa membebani *resource* aplikasi Odoo, Anda bisa membuat Cron Job langsung di server Linux (*host* tempat Docker berjalan). + +#### Langkah 1: Buat Script Pembersih + +Buat file baru di server Anda, misalnya bernama `/opt/cleanup_odoo_session.sh`: + +```bash +#!/bin/bash + +# Perintah untuk mengosongkan tabel session via Pgpool/Postgres Docker +# Ganti 'odoo_db' dengan nama database Odoo Anda yang sebenarnya +docker exec -i $(docker ps -q -f name=pgpool) psql -U odoo -d odoo_db -c "DELETE FROM session_db_session WHERE write_date < NOW() - INTERVAL '1 day';" + +``` + +*(Catatan: Sesuaikan nama tabel `session_db_session` dan kolom `write_date` dengan struktur tabel yang dibuat oleh modul Anda. Jika ingin menghapus **semua** session tanpa pandang bulu, Anda bisa menggunakan perintah `TRUNCATE TABLE nama_tabel;`)*. + +#### Langkah 2: Beri Izin Akses Script + +```bash +chmod +x /opt/cleanup_odoo_session.sh + +``` + +#### Langkah 3: Daftarkan ke Crontab Linux + +1. Buka terminal server Anda dan ketik: +```bash +crontab -e + +``` + + +2. Tambahkan baris berikut di bagian paling bawah file untuk menjalankan script **setiap malam jam 00:00**: +```text +0 0 * * * /opt/cleanup_odoo_session.sh > /dev/null 2>&1 + +``` + + +3. Simpan dan keluar. + +--- + +### ⚠️ Catatan Penting Sebelum Eksekusi: + +* **Efek Samping:** Jika Anda menggunakan perintah hapus total (`TRUNCATE`), semua pengguna (termasuk Anda) yang sedang membuka Odoo di HP atau laptop otomatis akan ter-log out (keluar) dan harus melakukan login ulang keesokan paginya. +* **Cek Nama Tabel:** Pastikan Anda memeriksa nama tabel session Anda terlebih dahulu melalui *Database Manager* atau pgAdmin. Nama tabel umum untuk modul ini adalah `session_db_session`, `ir_session`, atau `res_users_session`. \ No newline at end of file