分公司¶
:guilabel:`分支`檢視提供儲存庫中不同分支的概覽。
階段¶
Odoo.sh 提供三種不同的分支階段:
您可以透過將分支拖放到所需階段下方來變更分支的階段。
生產¶
生產分支包含用於運行生產資料庫的程式碼。生產分支只能有一個。
當您向此分支推送新提交時,生產伺服器會使用修訂後的程式碼進行更新並重新啟動。
如果變更需要更新模組(例如修改表單視圖),並且您希望自動執行更新,可以在模組的清單檔案(__manifest__.py)中增加模組的版本號。平台會執行更新,在此期間實例會因維護原因暫時無法使用。
此方法等同於使用:guilabel:Apps`選單或:doc:`命令列 <../../../developer/reference/cli>`中的 `-u 參數升級模組。
備註
如果變更導致伺服器無法重新啟動,或模組更新失敗,伺服器會自動回復到先前成功的程式碼版本,資料庫也會回滾到先前的狀態。您可以存取失敗更新的日誌以進行疑難排解。
系統不會載入示範資料,因為其不適用於生產資料庫。不會執行`單元測試<https://en.wikipedia.org/wiki/Unit_testing>`_,因為這會增加生產資料庫在更新期間的無法使用時間。
Odoo.sh 會自動備份生產資料庫。它保留七個每日備份、四個每週備份和三個每月備份。每個備份包括資料庫轉存、檔案儲存(附件和二進位欄位)、日誌和工作階段。
警告
使用**試用專案**時,生產分支和所有預備分支會在 **30 天**後自動設定回開發階段。
預備環境¶
預備分支用於使用生產資料測試新功能,而不會在實際生產資料庫中新增測試記錄造成影響。它們會建立生產資料庫的中和副本。
中和會停用:
排程動作
備註
若要測試它們,請手動觸發或重新啟用。請注意,如果沒有人使用資料庫,平台會降低觸發頻率以節省資源。
外發電子郵件
備註
它們會改為使用郵件捕獲器攔截。您的 Odoo.sh 專案中提供:ref:
查看電子郵件的介面 <odoo-sh/branches/tabs/mails>,用於檢視資料庫傳送的電子郵件。如此一來,不會向您的聯絡人傳送電子郵件。IAP 服務
付款服務商和物流連接器
備註
它們會設定為測試模式。
如果您在預備資料庫中配置或檢視變更,請務必記錄它們(逐步記下、在生產環境中重現等),或直接將其寫入分支的模組中,使用 XML 資料檔案覆寫預設配置或視圖。請參閱:ref:`第一個模組使用說明 <odoo-sh/module/add>`以檢視範例。
備註
不會執行單元測試。它們依賴示範資料,而示範資料不會載入到生產和預備資料庫中。如果 Odoo 支援在沒有示範資料的情況下運行單元測試,Odoo.sh 將考慮在預備資料庫上運行測試。
預備資料庫不會自動備份。不過,您可以在預備分支中還原正式資料庫的備份以進行測試,或手動復原從正式資料庫意外刪除的資料。您可以建立預備資料庫的手動備份。
警告
為暫存分支建立的資料庫會在一個月後自動刪除。若要再次使用該分支,您必須重新建置它。
開發¶
開發分支使用示範資料建立新資料庫以執行單元測試。安裝的模組為分支中包含的模組。您可以在:doc:`專案設定 <settings>`中變更要安裝的模組清單。
當推送提交至開發分支時,會啟動新伺服器,從頭建立資料庫,並更新分支。預設會載入示範資料並執行單元測試,以驗證變更不會破壞任何正在測試的功能。您可以停用測試,或前往:ref:`分支設定 <odoo-sh/branches/tabs/settings>`以允許使用自訂標籤執行特定測試。
與預備分支類似,電子郵件不會傳送,而是由郵件擷取器攔截,且只要資料庫未使用,排程動作就不會觸發。
開發資料庫不會自動備份,也無法手動備份。
警告
為開發分支建立的資料庫預期持續約三天。之後,它們可能會在沒有事先通知的情況下被自動垃圾回收,以騰出空間給新資料庫。
合併分支¶
您可以透過拖放方式將分支合併到彼此。
要使用生產資料測試開發分支的變更,您可以:
將開發分支拖放到所需分支上,以將其合併到預備分支;或
將開發分支拖放到:guilabel:`預備`區段下,使其成為預備分支。
當變更準備好用於生產時,將預備分支拖放到生產分支上以合併並部署它們。
備註
您可以直接將開發分支合併到生產分支。但是,變更不會透過預備分支針對生產資料進行驗證,因此在生產資料庫中遇到問題的風險較高。
您可以將開發分支合併到彼此,並將預備分支合併到彼此。
您也可以直接在工作站上使用
git merge來合併分支。當新修訂推送到您的分支時,Odoo.sh 會收到通知。
將預備分支合併到生產分支只會合併原始碼。對預備資料庫所做的任何變更都不會傳遞到生產資料庫。但是,如果您修改儲存庫中的程式碼,它會在合併時傳遞到生產分支。
如果您在預備分支中測試配置變更,並希望將其套用到生產分支,您必須執行以下其中一項:
在 XML 資料檔案中寫入配置變更以覆寫分支中的預設配置或視圖,然後在其清單(
__manifest__.py)中提高模組的版本,以在將預備分支合併到生產分支時觸發模組更新。備註
此方法建議用於提升開發的可擴充性,因為您將對所有配置變更使用 Git 版本控制功能,從而確保變更的可追溯性。
透過複製和貼上的方式,手動將它們從預備資料庫傳遞到正式資料庫。
分頁¶
過往訂單¶
:guilabel:`歷史記錄`分頁提供分支歷史記錄的概覽:
提交訊息及其作者
與平台相關的各種活動,例如階段變更、資料庫匯入和備份還原
每個活動右上角的狀態指示資料庫目前的操作(例如安裝、更新、備份匯入)或其結果(例如測試回饋、成功備份匯入)。如果操作成功,會出現:guilabel:`連線`按鈕,讓您存取資料庫。
信件¶
:guilabel:`郵件`分頁包含郵件捕捉器,提供資料庫傳送的電子郵件概覽。
備註
郵件捕捉器適用於開發和預備分支。正式資料庫的電子郵件實際上會被傳送,不會被郵件捕捉器攔截。
Shell¶
:guilabel:`Shell`分頁提供容器的 shell 存取。
按一下:guilabel:Shell`會開啟新的瀏覽器分頁,您可以在其中執行基本的 Linux 指令(`ls、top)。您可以執行 psql 在資料庫上開啟 shell。
小訣竅
您可以同時開啟多個 shell 分頁,並透過拖放來排列它們的版面配置。
備註
正式執行個體 shell 以紅色突顯,以強調直接操作正式執行個體的危險性,而預備/開發執行個體 shell 則以黃色突顯。
長時間執行的 shell 執行個體/閒置的 shell 工作階段可隨時終止以釋放資源。
指令¶
以下是您可以在 Odoo.sh 資料庫終端機執行的實用指令概覽:
odoo-bin shell:開啟 Odoo shellodoo-update:更新資料庫中的模組odoosh-restart:重新啟動 Odoo.sh 服務(http 或 cron)odoosh-storage:檢查執行個體容器檔案系統的儲存空間使用狀況psql:開啟資料庫 shellmutt:檢查電子郵件在文字用戶端中的顯示方式(預備和開發執行個體)lnav ~/logs/odoo.log:瀏覽執行個體的odoo.log檔案ncdu:啟動具有互動式介面的磁碟使用分析器grep:在日誌或配置檔案中篩選和尋找資訊
編輯¶
按一下編輯器會開啟新的瀏覽器分頁,以存取線上整合開發環境(IDE)來編輯原始碼。您也可以開啟終端機、Python 控制台和 Odoo shell 控制台。
您可以開啟多個分頁,並拖放它們以按照您的意願排列版面配置。
其他資料
監控¶
監控分頁顯示目前建置的各種效能監控指標。
使用游標放大以調整時間範圍,或從時間範圍選擇器手動選擇。也可以變更時區。
備註
技術日誌始終使用UTC(世界協調時間)。若要將這些日誌與您的監控指標一起分析,請確保在監控工具中選擇UTC(世界協調時間)。
同樣,在傳送支援票證時,請確保您分享的資訊是基於UTC(世界協調時間),因為 Odoo 使用此時區來調查效能問題。
資訊會定期彙總。在這種情況下,會顯示藍色虛線以及彙總日期標籤。這表示在此日期之前的資料與此日期之後的資料相比會顯得平坦。因此,在使用監控工具時,建議專注於最近的活動,以獲得盡可能詳細的資訊。
備註
其他顏色的虛線可協助您關聯建置的其他變更(資料庫匯入、git 推送等)。
小訣竅
在每個圖表上,左上角都會顯示一個𝕚(資訊)圖示。將滑鼠懸停在其上,即可取得有關圖表所代表內容的更多詳細資料。
指標¶
系統¶
Memory 圖表顯示記憶體消耗資訊:
Memory container 代表 Odoo 工作程序和容器程序。
Memory postgresql 代表資料庫。
CPU 圖表顯示 CPU 消耗資訊:
CPU http 代表 Odoo 工作程序。
CPU cron/mail 代表排程動作和收到的電子郵件。
:guilabel:`CPU postgresql`(資料庫程序)
CPU other 代表 webshell、編輯器等。
Storage 圖表顯示已使用的儲存空間資訊:
Container 代表檔案儲存區、日誌檔案和使用者檔案。
Postgresql 代表資料庫和索引。
HTTP¶
Requests 圖表顯示每秒 HTTP 請求數量資訊:
HTTP successes 代表成功的請求。
HTTP errors 代表失敗的請求(檢查
odoo.log)。HTTP rate limited 代表被拒絕的請求,可能是由於工作程序不足所致。
Concurrent requests (max) 圖表顯示每秒並行 HTTP 請求的最大數量。
備註
資料庫工作程序決定可同時處理的並行請求數量。必須有足夠的工作程序來處理所有傳入的請求。然而,超過此數量的額外工作程序並不會提升請求的處理速度。
Average Response time 顯示 HTTP 請求的平均回應時間(以毫秒為單位)。
信件¶
Incoming 圖表顯示每日傳入電子郵件數量的相關資料:
Received Emails 代表成功接收的電子郵件。
Received Emails bounced 代表未成功接收的電子郵件。
Outgoing 圖表顯示每日傳出電子郵件數量的相關資料:
Sent Emails 代表成功傳送的電子郵件。
Sent Emails bounced 代表未成功傳送的電子郵件。
紀錄¶
Logs 分頁提供伺服器日誌的即時檢視。
可用的不同記錄檔:
pip.log:Python 依賴套件安裝install.log:資料庫安裝(對於開發分支,包含測試)odoosh-import-database.log:最後一次匯入傾印處理程序odoo.log:執行中的伺服器update.log:資料庫更新pg_slow_queries.log:執行時間異常長的 psql 查詢sh_webshell.log:在 webshell 中執行的操作sh_editor.log:在編輯器中執行的操作neutralize.log:資料庫的中和(僅限預備環境)
當新資料行加入到日誌時,會自動顯示。如果您捲動到底部,每次加入新資料行時,瀏覽器會自動捲動。
您可以按一下右上角的 )按鈕來暫停日誌擷取程序。否則,程序會在五分鐘後停止。您可以按一下 )按鈕來重新啟動。
備份¶
備份 分頁列出可供下載和還原的可用備份,讓您執行手動備份並匯入資料庫。
生產資料庫每天自動備份。保留七個每日備份、四個每週備份和三個每月備份。每個備份包括資料庫傾印、檔案儲存(附件和二進位欄位)、日誌和工作階段。
備註
您可以參考 自動備份的預估排程 以更了解系統的運作方式。此檔案每天更新,以當天為起點。
預備和開發資料庫不會自動備份。但是,您可以在預備分支中還原生產資料庫的備份,以便進行測試,或手動復原從生產資料庫意外刪除的資料。
此清單包含保存在生產資料庫伺服器上的備份。此伺服器僅保留一個月的備份:七個每日備份和四個每週備份。
專用備份伺服器保留相同的備份,以及三個額外的每月備份。若要還原或下載這些每月備份之一,請聯絡 Odoo 支援。
當合併更新一個或多個模組版本(在 __manifest__.py 中)或其連結的 Python 相依性(在 requirements.txt 中)的提交時,Odoo.sh 會執行自動備份(在清單中標記為 Update 類型),因為容器會因安裝新的 pip 套件而變更,或者資料庫本身會因之後觸發的模組更新而變更。在這兩種情況下,會觸發備份,因為可能會破壞某些內容。
如果合併的提交未更新模組版本或連結的相依性,則 Odoo.sh 不會觸發備份,因為容器和資料庫均未修改;因此,平台認為這足夠安全。作為額外預防措施,您可以在修改生產來源之前進行手動備份。
手動備份的目的是建立生產或預備資料庫的特定快照(不適用於開發)。這些備份可保留七天。但是,每日手動備份的限制為五個。
預備 |
自動備份 |
手動備份 |
|---|---|---|
生產 |
是(最多 3 個月) |
是(3 天) |
預備環境 |
否 |
是(3 天) |
開發 |
否 |
否 |
:guilabel:`匯入資料庫`功能接受來自以下來源的資料庫封存檔:
標準 Odoo 資料庫管理員(適用於離線安裝 Odoo 伺服器,位於
/web/database/manager)Odoo 雲端版資料庫管理員
Odoo.sh 備份`分頁(使用 :icon:`fa-download`(:guilabel:`下載選項)按鈕)
Odoo.sh 建置 <builds>`檢視(按一下:guilabel:`下載資料庫轉存)
升級¶
升級`分頁可用於升級有效專案的生產和預備分支。有關升級流程的更多資訊,請參閱:doc:`升級使用說明 <../../upgrade>。
工具¶
:guilabel:`工具`分頁包含程式碼分析器。它用於啟動分析工作階段,記錄執行個體中 Odoo 工作程序的活動,最長五分鐘。您可以選擇提前終止工作階段,因為執行工具的時間較短可減少報告中的雜訊量。
每次工作階段後,會建立一個互動式火焰圖,協助您視覺化 Odoo 工作程序如何分配時間。
警告
執行分析器會消耗大量伺服器資源,因此請避免讓它執行過長時間。目標是記錄資料庫中的特定操作。
設定¶
:guilabel:`設定`分頁列出目前所選分支可用的配置選項。每個階段的選項有所不同。
新提交時的行為¶
您可以變更開發與暫存分支在接收到新提交時的行為。
預設情況下,開發分支會建立新組建,而暫存分支會更新先前的組建。如果您正在處理的功能需要特定配置,這非常有用,因為您不需要在每次提交後手動重新配置。
如果您為暫存分支選擇新組建,則每次推送提交時都會建立正式組建的全新副本。
從暫存移至開發的分支會自動設定為不執行任何動作。
模組安裝¶
您可以選擇開發分支應自動安裝哪些模組。
若要變更預設行為,請取消勾選開發組建行為下的使用預設選項,然後在模組安裝下選擇以下選項之一:
僅安裝我的模組(不包含子模組):僅安裝分支的模組,不包含子模組。這是預設選項。
完整安裝(無測試套件):安裝分支的模組、子模組以及所有標準 Odoo 模組。執行完整安裝時,測試套件會停用。
安裝模組清單:安裝指定的模組。為此,請輸入其技術名稱,並使用逗號分隔(例如:
sale_management,website,accountant)。
備註
如果測試套件已啟用,安裝所有標準 Odoo 模組可能需要長達一小時的時間。
測試套件¶
預設情況下,開發分支的測試套件已啟用。您可以輸入測試標籤並使用逗號分隔(例如:custom_tags,at_install,post_install),以限制要執行的測試。
若要完全停用測試套件,請取消勾選在新組建上驗證測試套件。
Odoo 版本¶
您可以變更開發分支的 Odoo 版本,例如測試升級的程式碼,或在您的正式資料庫正在升級至較新版本的過程中開發功能,方法是選擇其他版本。
預設情況下,修訂版選擇最新,並且您的 Odoo 伺服器來源會每週自動更新,以受益於最新的錯誤、安全性與效能修正。
若要選擇特定修訂版,請使用修訂版欄位進行選擇。
警告
修訂版會在三個月後到期。當修訂版的到期日期臨近時,您會收到電子郵件通知。如果到期時您未採取任何行動,修訂版欄位會自動設定回最新。
自訂網域¶
您可以為所有分支類型配置額外的 <name>.odoo.com 網域或您自己的自訂網域。
若要使用您自己的自訂網域,必須:
擁有或購買網域名稱。
在 自訂網域 下輸入網域名稱(例如
www.mycompany.com),然後按一下 加入網域。使用您的註冊商的網域名稱管理員配置網域名稱(例如
www.mycompany.com),將 CNAME 記錄值設定為您的正式環境資料庫網域名稱(例如mycompany.odoo.com)。
重要
不接受裸網域(例如 mycompany.com)。它們只能使用 A 記錄配置,而 A 記錄只接受 IP 位址作為其值。因此,裸網域可能會突然停止運作,因為資料庫的 IP 位址可能會變更(例如,在升級、硬體故障或資料庫託管位置變更之後)。
若要讓您的裸網域(例如 mycompany.com)和 www 網域(例如 www.mycompany.com)都能正常運作,必須將裸網域重新導向至 www 網域。大多數網域管理員都提供配置此重新導向的方式,通常稱為網頁重新導向。
HTTPS/SSL¶
如果重新導向設定正確,系統會在一小時內使用 Let’s Encrypt 自動產生 SSL 憑證,這表示您的網域將可透過 HTTPS 存取。
SPF 和 DKIM 合規性¶
如果您的電子郵件地址的網域使用 SPF(寄件者政策架構) 或 DKIM(網域金鑰識別郵件) 驗證通訊協定,則必須在網域名稱設定中授權 Odoo 作為傳送主機,以提高外寄電子郵件的傳遞能力。如需更多資訊,請參閱 配置 DNS 記錄以在 Odoo 傳送電子郵件使用說明。
重要
如果 Odoo 未獲授權為傳送主機,您的外寄電子郵件可能會被標記為垃圾郵件。
Shell 指令¶
在檢視的右上角會顯示數個 shell 指令。可以使用剪貼簿按鈕複製這些指令,然後在終端機中使用。此外,其中一些指令可以直接從 Odoo.sh 的介面使用。
複製¶
clone 指令用於建立您的 Git 儲存庫的本機副本。
Example
git clone --recurse-submodules --branch development git@github.com:my-organization/my-repository.git
--recurse-submodules用於下載儲存庫的子模組--branch main用於切換到儲存庫的特定分支(例如development)
備註
執行按鈕不可用,因為該指令用於在您的電腦上建立本機副本。
分叉¶
fork 指令用於根據當前分支建立新分支。
Example
git checkout -b main-1 development && git push -u origin development-1
git checkout -b main-1 main基於目前分支(例如development)建立新分支(例如development-1)的命令git push -u origin development-1將新分支(例如development-1)上傳到遠端儲存庫的命令
合併¶
merge 指令用於將某個分支上的變更合併到另一個分支。
Example
git merge staging-1 && git push -u origin staging
git merge staging-1將目前分支的變更合併到另一個分支(例如staging-1)的命令git push -u origin staging將合併的變更上傳到遠端儲存庫分支(例如staging)的命令
SSH¶
SSH 指令用於使用 SSH連線到組建。
若要使用 SSH 指令,必須先設定 SSH 金鑰。操作方式如下:
在 Odoo.sh 上,按一下右上角的 GitHub 使用者,然後選取個人資料。
將 SSH 金鑰貼到手動加入金鑰欄位下方,然後按一下加入。
Example
ssh 25004381@my-user-my-repository-staging-25004381.dev.odoo.com
25004381組建 IDmy-user-my-repository-staging-25004381.dev.odoo.com用於連線到組建的網域
只要您在專案上擁有必要的:ref:存取權限 <odoo-sh/settings/collaborators>,就會獲得對建置的 SSH 存取權。
備註
不保證長時間執行的 SSH 連線。閒置連線可能會中斷連線以釋放資源。
子模組¶
submodule 指令用於將另一個存放庫的分支作為子模組加入到目前分支。
其他資料
Example
git submodule add -b master <URL> <PATH> && git commit -a && git push -u origin staging
git submodule add -b master <URL> <PATH>將儲存庫(<URL>)的特定分支(例如master)作為子模組加入到目前分支中指定路徑(<PATH>)下的命令。git commit -a提交所有目前變更的命令git push -u origin staging將目前分支(例如staging)的變更上傳到遠端儲存庫的命令。
刪除¶
delete 指令用於從存放庫中刪除分支。
備註
刪除分支後,除非存在備份,否則無法擷取。臨時分支不會自動備份,但可以手動備份。開發分支無法備份。
Example
git push origin :staging && git branch -D staging
git push origin :staging刪除遠端儲存庫上特定分支(例如staging)的命令git branch -D staging刪除本機儲存庫副本上特定分支的命令
警告
刪除分支之前,請參閱備份區段,以更清楚了解備份的運作方式以及何時應建立手動備份。