如何利用 hostname 來指定資料庫

利用網址的第一段來指定要存取的資料庫

Andy Cheng
如何利用 hostname 來指定資料庫

在一台主機上有多個 Odoo 資料庫

很多時候為了有分開的測試環境,或是其他的原因,會在同一套 Odoo 裡開了很多個資料庫。預設都得在登入的時候選擇要登入的資料庫,或是輸入資料庫的名稱。這樣的做法增加了不少操作上的麻煩,有些時候還會造成系統某些功能的錯亂。

這裡就來教大家,如何用設定檔內的 dbfilter 來直接使用 URL 裡的 hostname 指定資料庫。

設定檔內的 dbfilter

在 Odoo 的設定檔裡,有一個設定值叫做「 dbfilter 」。 Odoo 會利用這個設定,來限制不同網址可以存取的資料庫,語法使用正規表示式( reqular expression ),額外可以用 %d 代表網址內的主機名稱( hostname ), %h 代表完整網址,以 abc.def.com 為例, %d 會是 abc ,而 %h 會是 abc.def.com 。

最常使用的設定方式,就是 dbfilter = ^%d$ ,其中 ^ 代表開頭, $ 代表結尾。這樣的使用方式,就可以讓用 abc.example.com 連到 Odoo 的人,只能存取 abc 這個資料庫,而 def.example.com 就只能連到 def 這個資料庫。

Odoo config file

其它應用

因為可以使用正規表示式,所以有許多其他的應用方式,例如: ^%d.*$ ,就可以讓 abc.example.com 連到所有 abc 開頭的資料庫,比如 abc-production 或 abc-test 。

^%h$ 就可以用整個網址來限制, abc.example.com 就只能連到 abc.example.com 這個資料庫。