分公司

:guilabel:`分支`檢視提供儲存庫中不同分支的概覽。

階段

Odoo.sh 提供三種不同的分支階段:

您可以透過將分支拖放到所需階段下方來變更分支的階段。

變更分支的階段

備註

  • 開發分支可以移動到 測試環境 下方。如果您嘗試將開發分支移動到 正式環境 下方,系統將顯示警告訊息,說明每個專案只能有一個正式環境分支。

  • 測試環境分支可以移動到 開發環境 下方,但無法將它們移動到 正式環境 下方。

  • 生產分支只能移動到:guilabel:`Development`之下。如果嘗試將其移動到:guilabel:`Staging`之下,則只能執行合併操作。請參閱:ref:`合併 <odoo-sh/branches/stages/merging>`章節以了解此流程的詳細說明。

生產

生產分支包含用於運行生產資料庫的程式碼。生產分支只能有一個。

當您向此分支推送新提交時,生產伺服器會使用修訂後的程式碼進行更新並重新啟動。

如果變更需要更新模組(例如修改表單視圖),並且您希望自動執行更新,可以在模組的清單檔案(__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 指令(`lstop)。您可以執行 psql 在資料庫上開啟 shell。

分支的 shell 分頁

小訣竅

您可以同時開啟多個 shell 分頁,並透過拖放來排列它們的版面配置。

備註

  • 正式執行個體 shell 以紅色突顯,以強調直接操作正式執行個體的危險性,而預備/開發執行個體 shell 則以黃色突顯。

  • 長時間執行的 shell 執行個體/閒置的 shell 工作階段可隨時終止以釋放資源。

指令

以下是您可以在 Odoo.sh 資料庫終端機執行的實用指令概覽:

  • odoo-bin shell:開啟 Odoo shell

  • odoo-update:更新資料庫中的模組

  • odoosh-restart:重新啟動 Odoo.sh 服務(http 或 cron)

  • odoosh-storage:檢查執行個體容器檔案系統的儲存空間使用狀況

  • psql:開啟資料庫 shell

  • mutt:檢查電子郵件在文字用戶端中的顯示方式(預備和開發執行個體)

  • lnav ~/logs/odoo.log:瀏覽執行個體的odoo.log檔案

  • ncdu:啟動具有互動式介面的磁碟使用分析器

  • grep:在日誌或配置檔案中篩選和尋找資訊

編輯

按一下編輯器會開啟新的瀏覽器分頁,以存取線上整合開發環境(IDE)來編輯原始碼。您也可以開啟終端機、Python 控制台和 Odoo shell 控制台。

分支的編輯器分頁

您可以開啟多個分頁,並拖放它們以按照您的意願排列版面配置。

監控

監控分頁顯示目前建置的各種效能監控指標。

使用游標放大以調整時間範圍,或從時間範圍選擇器手動選擇。也可以變更時區。

分支監控分頁中的時間範圍選擇器

備註

  • 技術日誌始終使用UTC(世界協調時間)。若要將這些日誌與您的監控指標一起分析,請確保在監控工具中選擇UTC(世界協調時間)

  • 同樣,在傳送支援票證時,請確保您分享的資訊是基於UTC(世界協調時間),因為 Odoo 使用此時區來調查效能問題。

資訊會定期彙總。在這種情況下,會顯示藍色虛線以及彙總日期標籤。這表示在此日期之前的資料與此日期之後的資料相比會顯得平坦。因此,在使用監控工具時,建議專注於最近的活動,以獲得盡可能詳細的資訊。

備註

其他顏色的虛線可協助您關聯建置的其他變更(資料庫匯入、git 推送等)。

CPU 監控彙總資料

小訣竅

在每個圖表上,左上角都會顯示一個𝕚(資訊)圖示。將滑鼠懸停在其上,即可取得有關圖表所代表內容的更多詳細資料。

指標

系統

Memory 圖表顯示記憶體消耗資訊:

  • Memory container 代表 Odoo 工作程序和容器程序。

  • Memory postgresql 代表資料庫。

監控分頁中的記憶體圖表

CPU 圖表顯示 CPU 消耗資訊:

  • CPU http 代表 Odoo 工作程序。

  • CPU cron/mail 代表排程動作和收到的電子郵件。

  • :guilabel:`CPU postgresql`(資料庫程序)

  • CPU other 代表 webshell、編輯器等。

監控分頁中的 CPU 圖表

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 的介面使用。

分支 shell 指令捷徑

複製

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 金鑰。操作方式如下:

Example

ssh 25004381@my-user-my-repository-staging-25004381.dev.odoo.com
  • 25004381 組建 ID

  • my-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 刪除本機儲存庫副本上特定分支的命令

警告

刪除分支之前,請參閱備份區段,以更清楚了解備份的運作方式以及何時應建立手動備份。