分支?

概覽?

分支視圖為您提供了您的代碼庫中不同分支的概覽。

../../../_images/interface-branches.png

階段?

Odoo.sh為您的分支提供三個不同的階段:生產、暫存和開發。

您可以通過將其拖放到階段部分標題中來更改分支的階段。

../../../_images/interface-branches-stagechange.png

生產?

這是包含您生產數據庫運行代碼的分支。只能有一個生產分支。

當您在此分支中推送新的提交時,您的生產服務器將使用新版本的代碼進行更新,然后重新啟動。

如果您的更改需要更新模塊,例如表單視圖中的更改,并且您希望它自動執行,請在模塊清單( * __manifest__.py * )中增加模塊的版本號。然后平臺將負責執行更新,期間實例將因維護原因暫時不可用。

這種方法相當于通過應用程序菜單或通過 命令行-u 開關執行模塊的升級。

如果提交的更改導致服務器無法重新啟動,或者模塊更新失敗,服務器會自動恢復到上一個成功的代碼版本,并將數據庫回滾到更新之前的狀態。您仍然可以訪問失敗更新的日志,以便進行故障排除。

演示數據不會被加載,因為它不適用于生產數據庫。單元測試不會執行,因為這會增加生產數據庫在更新期間的不可用時間。

使用試用項目的合作伴應該知道,他們的生產分支以及所有的暫存分支將在30天后自動設置回開發階段。

暫存?

Staging分支旨在使用生產數據測試新功能,而不會通過測試記錄來危及實際生產數據庫。它們將創建生產數據庫的中性副本。

中和包括:

  • 禁用定時操作。如果您想測試它們,可以手動觸發它們的操作或重新啟用它們。請注意,如果沒有人使用數據庫,平臺會更少地觸發它們,以節省資源。

  • 通過使用mailcatcher攔截郵件來禁用出站郵件。提供了一個 查看界面 ,用于查看數據庫發送的郵件。這樣,您就不必擔心向您的聯系人發送測試郵件。

  • 將支付提供商和運輸提供商設置為測試模式。

  • 禁用 IAP 服務

最新的數據庫將無限期保留,同一分支中的舊數據庫可能會被垃圾回收以為新的騰出空間。它將在3個月內有效,之后您需要重建該分支。如果您在這些數據庫中進行配置或視圖更改,請確保記錄它們或直接在分支的模塊中編寫它們,使用XML數據文件覆蓋默認配置或視圖。

由于Odoo當前的單元測試依賴于演示數據,而生產數據庫中沒有加載演示數據,因此不執行單元測試。如果將來Odoo支持在沒有演示數據的情況下運行單元測試,Odoo.sh將考慮在暫存數據庫上運行測試。

開發?

開發分支使用演示數據創建新的數據庫來運行單元測試。安裝的模塊是您的分支中包含的模塊。您可以在您的 項目設置 中更改要安裝的模塊列表。

當你在這些分支中推送新的提交時,會啟動一個新的服務器,創建一個全新的數據庫和分支的新版本。默認情況下,會加載演示數據并執行單元測試,以驗證你的更改不會破壞它們測試的任何功能。如果你希望,可以禁用測試或允許在 分支設置 中使用自定義標簽運行特定的測試。

與暫存分支類似,郵件不會被發送,而是被攔截并由郵件捕獲器處理,定時操作也不會頻繁觸發,因為數據庫不在使用中。

為開發分支創建的數據庫的壽命大約為三天。之后,它們可以自動垃圾回收,以為新數據庫騰出空間,而無需事先通知。

合并您的分支?

您可以通過拖放將分支輕松合并到一起。

../../../_images/interface-branches-merge.png

當您想要使用生產數據測試開發分支的更改時,您可以選擇:

  • 將開發分支合并到您的暫存分支中,將其拖放到所需的暫存分支上即可。

  • 將開發分支拖放到暫存區標題上,使其成為暫存分支。

當您的最新更改準備好投入生產時,您可以將暫存分支拖放到生產分支上,以合并并在生產環境中部署您的最新功能。

如果你足夠大膽,你也可以將開發分支合并到生產分支中。這意味著你可以跳過通過暫存分支驗證你的更改和生產數據的過程。

您可以將開發分支合并到彼此之間,將暫存分支合并到彼此之間。

當然,您也可以直接在您的工作站上使用 git merge 來合并您的分支。當您的分支有新的修訂版本被推送時,Odoo.sh 將會收到通知。

將暫存分支合并到生產分支中只會合并源代碼:您在暫存數據庫中所做的任何配置更改都不會傳遞到生產數據庫中。

如果您在測試分支中進行配置更改,并希望將它們應用于生產環境,則必須執行以下操作之一:

  • 將配置更改寫入XML數據文件,覆蓋默認配置或視圖,然后增加模塊清單( * __manifest__.py * )中的版本,以在將暫存分支合并到生產分支時觸發模塊的更新。這是更好的可擴展性的最佳實踐,因為您將為所有配置更改使用Git版本控制功能,從而可以跟蹤您的更改。

  • 您需要手動將它們從您的暫存數據庫傳遞到您的生產數據庫,通過復制/粘貼它們。

選項卡?

歷史記錄?

分支歷史記錄概覽:

  • 提交的信息和作者,

  • 與平臺相關的各種事件,例如階段更改、數據庫導入、備份還原。

../../../_images/interface-branches-history.png

每個事件都會在右上角顯示一個狀態。它可以提供有關數據庫正在進行的操作(安裝、更新、備份導入等)或其結果(測試反饋、成功的備份導入等)的信息。當操作成功時,您可以通過“連接”按鈕訪問數據庫。

郵件?

此選項卡包含郵件捕獲器。它顯示數據庫發送的電子郵件概述。郵件捕獲器適用于您的開發和暫存分支,因為您的生產數據庫的電子郵件實際上是發送而不是被攔截。

../../../_images/interface-branches-mails.png

命令行?

訪問您的容器的Shell。您可以執行基本的Linux命令( ls , top ),并通過輸入 psql 打開數據庫的Shell。

../../../_images/interface-branches-shell.png

您可以打開多個標簽并將它們拖放以按您的意愿排列布局,例如并排。

注解

長時間運行的 shell 實例不能保證??臻e的 shell 可能會在任何時候斷開連接以釋放資源。

編輯?

一個在線集成開發環境(IDE)用于編輯源代碼。您還可以打開終端、Python控制臺甚至Odoo Shell控制臺。

../../../_images/interface-branches-editor.png

您可以打開多個標簽并將它們拖放以按您的意愿排列布局,例如并排。

監控?

此鏈接包含當前構建的各種監控指標。

../../../_images/interface-branches-monitoring.png

您可以在每個圖表上縮放、更改時間范圍或選擇特定的指標。在圖表上,注釋可以幫助您了解構建過程中的變化(如數據庫導入、git推送等)。

日志?

一個查看服務器日志的工具。

../../../_images/interface-branches-logs.png

有不同的日志可用:

  • install.log: 數據庫安裝的日志。在開發分支中,包括測試的日志。

  • pip.log:Python 依賴項安裝的日志。

  • odoo.log:運行服務器的日志。

  • update.log:數據庫更新日志。

  • pg_long_queries.log: 記錄執行時間異常長的 psql 查詢的日志。

如果日志中添加了新行,它們將自動顯示。如果您滾動到底部,每次添加新行時,瀏覽器都會自動滾動。

您可以通過單擊視圖右上角的相應按鈕來暫停日志獲取。獲取將在5分鐘后自動停止。您可以使用播放按鈕重新啟動它。

備份?

備份列表,可供下載和恢復,能夠手動備份和導入數據庫。

../../../_images/interface-branches-backups.png

Odoo.sh每天備份生產數據庫。它保留7個每日備份,4個每周備份和3個每月備份。每個備份包括數據庫轉儲,文件存儲(附件,二進制字段),日志和會話。

暫存和開發數據庫沒有備份。但是,您仍然可以在暫存分支中恢復生產數據庫的備份,用于測試目的,或手動恢復從生產數據庫中意外刪除的數據。

該列表包含托管在您生產數據庫所在服務器上的備份。該服務器僅保留一個月的備份:7個每日備份和4個每周備份。

專用備份服務器保留相同的備份,以及額外的3個月度備份。要恢復或下載其中一個月度備份,請 聯系我們。

如果您合并了一個更新一個或多個模塊版本(在 __manifest__.py 中)或它們鏈接的 Python 依賴項(在 requirements.txt 中)的提交,則 Odoo.sh 會自動執行備份(在列表中標記為更新類型),因為容器將通過安裝新的 pip 包或者數據庫本身將通過觸發后續的模塊更新而發生更改。在這兩種情況下,我們都會進行備份,因為它可能會破壞一些東西。

如果您合并了一個僅更改了一些代碼而沒有上述修改的提交,則Odoo.sh不會執行備份,因為容器和數據庫都沒有被修改,因此平臺認為這足夠安全。當然,在進行生產源的重大更改之前,您可以手動備份以防萬一(這些手動備份可用約一周)。為了避免濫用,我們將手動備份限制為每天5次。

導入數據庫功能接受以下格式的數據庫歸檔文件:

  • 標準的Odoo數據庫管理器,(適用于本地Odoo服務器,在 /web/database/manager 下可用)

  • Odoo 在線數據庫管理器,

  • 備份 選項卡中的Odoo.sh備份下載按鈕,

  • 構建視圖 中,Odoo.sh 的轉儲下載按鈕。

升級?

對于有效項目,生產和暫存分支可用。

另請參閱

升級 - Odoo.sh

設置?

在這里,您可以找到一些僅適用于當前所選分支的設置。

../../../_images/interface-branches-settings.jpg

新提交的行為

對于開發和暫存分支,您可以更改分支在接收到新提交時的行為。默認情況下,開發分支將創建一個新的構建,而暫存分支將更新先前的構建(請參見“ 生產階段 ”)。這在您正在開發需要特定設置或配置的功能時特別有用,以避免在每次提交時手動設置它。如果您選擇為暫存分支創建新的構建,則每次推送提交時它都會從生產構建中制作新的副本。將分支從暫存狀態放回到開發狀態時,將自動設置為“不執行任何操作”。

模塊安裝

選擇自動安裝開發構建所需的模塊。

../../../_images/interface-settings-modulesinstallation.png
  • 僅安裝我的模塊 將僅安裝該分支的模塊。這是默認選項。 子模塊 將被排除。

  • 完整安裝(所有模塊) 將安裝該分支的模塊,包括子模塊中包含的模塊和 Odoo 的所有標準模塊。運行完整安裝時,測試套件將被禁用。

  • 安裝模塊列表 將安裝在此選項下方指定的模塊。名稱是模塊的技術名稱,必須用逗號分隔。

如果啟用了測試,標準的Odoo模塊套件可能需要長達1小時的時間。此設置僅適用于開發構建。暫存構建會復制生產構建,而生產構建僅安裝基礎模塊。

測試套件

對于開發分支,您可以選擇啟用或禁用測試套件。默認情況下啟用。當測試套件啟用時,您可以通過指定測試標簽 test tags 來限制它們。

Odoo 版本

僅適用于開發分支,您可以更改Odoo的版本,以便在生產數據庫正在升級到新版本的過程中測試升級代碼或開發功能。

此外,對于每個版本,您有兩個選項來更新代碼。

  • 您可以選擇自動獲得最新的錯誤修復、安全性和性能修復。您的Odoo服務器源代碼將每周更新一次。這是“最新”選項。

  • 您可以選擇從日期列表中選擇特定的Odoo源代碼版本,并將其固定在特定的修訂版本上。修訂版本將在3個月后過期。當到期日期臨近時,您將通過電子郵件收到通知,如果您在此之后不采取任何行動,系統將自動將您設置為最新版本。

自定義域名

在這里,您可以為所選分支配置其他域??梢蕴砑悠渌?<name>.odoo.com 域或您自己的自定義域。對于后者,您必須:

  • 擁有或購買域名,

  • 將域名添加到此列表中,

  • 在您的注冊機構的域名管理器中,使用“CNAME”記錄配置域名,將其設置為您的生產數據庫域名。

例如,將 www.mycompany.com 關聯到您的數據庫 mycompany.odoo.com

  • 在Odoo.sh中,在您的項目設置的自定義域中添加 www.mycompany.com

  • 在您的域名管理器(例如 godaddy.com , gandi.net , ovh.com )中,使用值為 mycompany.odoo.comCNAME 記錄配置 www.mycompany.com 。

不接受裸域名(例如 mycompany.com ):

  • 它們只能使用 A 記錄進行配置,

  • A 記錄只接受 IP 地址作為值,

  • 您的數據庫的IP地址可能會發生變化,這可能是由于升級、硬件故障或您希望將數據庫托管在另一個國家或大陸而引起的。

因此,由于IP地址的更改,裸域名可能會突然無法使用。

此外,如果您希望 mycompany.comwww.mycompany.com 都能夠使用您的數據庫,將第一個重定向到第二個是 SEO 最佳實踐之一 (請參見 提供一個 URL 版本以訪問文檔 )以便擁有一個主導 URL。因此,您可以將 mycompany.com 配置為重定向到 www.mycompany.com 。大多數域名管理器都具有配置此重定向的功能。這通常稱為網頁重定向。

HTTPS/SSL

如果重定向設置正確,平臺將在一小時內自動生成一個帶有 Let’s Encrypt 的 SSL 證書,您的域名將通過 HTTPS 訪問。

目前在Odoo.sh平臺上無法配置自己的SSL證書,但如果有足夠的需求,我們會考慮增加此功能。

SPF 和 DKIM 合規性

如果您的用戶電子郵件地址的域名使用了SPF(發件人策略框架)或DKIM(域名密鑰識別郵件),請不要忘記在您的域名設置中授權Odoo作為發送主機,以提高您的外發郵件的可投遞性。有關配置步驟,請參閱文檔中的: SPFDKIM 。

警告

忘記配置SPF或DKIM以授權Odoo作為發送主機可能會導致您的郵件被投遞到您聯系人的垃圾郵件收件箱中。

Shell 命令?

在視圖的右上角,有不同的 shell 命令可用。

../../../_images/interface-branches-shellcommands.png

每個命令都可以復制到剪貼板中,以便在終端中使用,其中一些命令可以直接從Odoo.sh中通過單擊“運行”按鈕使用,在這種情況下,彈出窗口將提示用戶定義可能的占位符,例如“<URL>”,“<PATH>”,…

克隆?

下載 Git 代碼庫。

$ git clone --recurse-submodules --branch master git@github.com:odoo/odoo.git

克隆 odoo/odoo 代碼庫。

  • --recurse-submodules : 下載您的倉庫的子模塊。包含在子模塊中的子模塊也會被下載。

  • --branch : 檢出倉庫的特定分支,在本例中為 master 。

此命令不可用于 運行 按鈕,因為它是用于在您的機器上使用的。

分支?

在當前分支的基礎上創建一個新分支。

$ git checkout -b feature-1 master

創建一個基于分支 master 的名為 feature-1 的新分支,然后切換到該分支。

$ git push -u origin feature-1

上傳新分支 feature-1 到您的遠程倉庫。

合并?

將當前分支合并到另一個分支中。

$ git merge staging-1

將分支 staging-1 合并到當前分支中。

$ git push -u origin master

上傳您剛剛在遠程存儲庫的 分支中添加的更改。

SSH?

設置?

為了使用SSH,您必須設置您的SSH公鑰配置文件(如果尚未完成)。請按照以下步驟操作:

  1. 生成新的SSH密鑰

  2. 將SSH密鑰復制到剪貼板 (僅執行第1步)

  3. 將復制的內容粘貼到您的個人SSH密鑰中,然后按“添加”

    ../../../_images/SSH-key-pasting.png
  4. 密鑰應該出現在下面

    ../../../_images/SSH-key-appearing.png

連接?

要使用ssh連接到您的構建,請在終端中使用以下命令:

$ ssh <build_id>@<domain>

您可以在右上角的SSH選項卡中找到此命令的快捷方式。

../../../_images/SSH-panel.png

如果您在項目中擁有 正確的訪問權限 ,您將被授予ssh訪問權限。

注解

長時間運行的 SSH 連接不能保證??臻e連接將被斷開以釋放資源。

子模塊?

在當前分支中將另一個倉庫的分支作為 子模塊 添加。

Submodules 允許您在項目中使用來自其他存儲庫的模塊。

子模塊功能在本文檔的 子模塊 章節中有詳細介紹。

$ git submodule add -b master <URL> <PATH>

將存儲庫 <URL> 的分支 master 作為子模塊添加到您當前分支的路徑 <PATH> 下。

$ git commit -a

提交您當前的所有更改。

$ git push -u origin master

上傳您剛剛在遠程存儲庫的 分支中添加的更改。

刪除?

從您的代碼庫中刪除一個分支。

$ git push origin :master

刪除您的遠程存儲庫中的分支。

$ git branch -D master

刪除您本地倉庫中的分支。