《Odoo開發指南》精選分享—第1章-開始使用Odoo開發(1)
引言
在進入Odoo開發之前,我們需要建立我們的開發環境,並學習它的基本管理任務。
在本章中,我們將學習如何設定工作環境,在這裡我們將構建我們的Odoo應用程式。我們將學習如何設定Debian或Ubuntu系統來託管開發伺服器例項,以及如何從GitHub原始碼中安裝Odoo。然後,我們將學習如何設定與Samba的檔案共享,這將允許我們從執行Windows或任何其他作業系統的工作站執行Odoo檔案。
Odoo是使用Python程式語言構建的,它使用PostgreSQL資料庫進行資料儲存;這些是Odoo主機的兩個主要需求。要從原始碼執行Odoo,我們首先需要安裝它依賴的Python庫。然後可以從GitHub下載Odoo原始碼。雖然我們可以下載ZIP檔案或tarball,但我們會看到,如果我們使用Git版本控制應用程式獲取原始碼會更好;它也會幫助我們把它安裝在我們的Odoo主機上。
為Odoo伺服器設定一個主機
一個Debian / Ubuntu系統被推薦用於Odoo伺服器。你仍然可以在你最喜歡的桌面系統中工作,無論是Windows、Mac還是Linux。
Odoo可以在各種作業系統上執行,那麼為什麼要以犧牲其他作業系統為代價來選擇Debian呢?因為Debian被認為是Odoo團隊的參考部署平臺;它有最好的支援。如果我們使用Debian / Ubuntu,它將更容易找到幫助和額外的資源。
它也是大多數開發人員工作的平臺,大多數部署都是在這個平臺上進行的。因此,不可避免的是,Odoo開發人員將會對Debian / Ubuntu平臺感到滿意。即使你是Windows背景的,你也要對它有所瞭解,這一點很重要。
在本章中,您將學習如何在基於debianbased的系統上設定和處理Odoo,只使用命令列。對於那些有Windows系統的家庭,我們將介紹如何設定虛擬機器來託管Odoo伺服器。作為一個額外的獎勵,您將在這裡學到的技術也將允許您在雲伺服器中管理Odoo,在那裡您唯一的訪問將通過Secure Shell (SSH)來訪問。
請記住,這些指示是為了建立一個新的發展系統。如果您想在現有的系統中嘗試其中的一些,總是提前進行備份,以便在出現問題時恢復它。
為Debian主機提供的服務
如前所述,我們需要一個基於debian-based的Odoo伺服器主機。如果這是您第一次使用Linux,您可能會注意到Ubuntu是基於debianbased的Linux發行版,所以它們非常相似。
Odoo可以保證使用當前穩定版本的Debian或Ubuntu。在寫作的時候,這些是Debian 8“Jessie”和Ubuntu 16.04.1 LTS(Xenial Xerus)。這兩環境都有Python 2.7,這是執行Odoo的必要條件。值得一提的是,Odoo並不支援Python 3,因此需要Python 2。
如果你已經在執行Ubuntu或另一個基於debian-based的發行版,你就可以設定;這也可以作為Odoo的主機。
對於Windows和Mac作業系統,安裝Python、PostgreSQL和所有依賴項;接下來,直接從源程式執行Odoo。然而,這可能是一個挑戰,所以我們的建議是使用執行Debian或Ubuntu伺服器的虛擬機器。您可以選擇您喜歡的虛擬化軟體,以在虛擬機器中獲得一個工作的Debian系統。
如果您需要一些指導,這裡有一些關於虛擬化軟體的建議。有幾個選項,比如Microsoft hyper - v(在某些版本的Windows系統中可用)、Oracle VirtualBox和VMWare工作站播放器(Mac的VMWare Fusion)。VMWare工作站的球員可能是更容易使用,並且免費下載可以在https://my.vmware.com/web/vmware/downloads上找到。
對於使用的Linux映像,安裝Ubuntu伺服器要比Debian更加友好。如果您從Linux開始,我建議您嘗試使用現成的映像。TurnKey Linux提供了多種格式的易於使用的預安裝映像,包括ISO。ISO格式將與您所選擇的任何虛擬化軟體一起工作,即使是在您可能擁有的裸金屬機器上。一個很好的選擇可能是第三方LAPP映象,包括Python和PostgreSQL,可以在http://www.turnkeylinux.org/lapp找到。
一旦安裝並啟動,您應該能夠登入到命令列shell。
為Odoo建立一個使用者帳戶
如果您正在登入使用超級使用者root帳戶,那麼您的第一個任務應該是建立一個正常的使用者帳戶來使用您的工作,因為它被認為是不好的工作實踐作為root。特別是,如果您將其作為root來啟動,那麼Odoo伺服器將拒絕執行。
如果您正在使用Ubuntu,那麼您可能不需要這個,因為安裝過程必須已經通過建立一個使用者來指導您。
首先,確保安裝sudo。我們的工作使用者將需要它。如果作為root登入,執行以下命令:
# apt-get update && apt-get upgrade# 安裝系統更新
# apt-get install sudo# 確保安裝“sudo”
下一組命令將建立一個odoo使用者:
# useradd -m -g sudo -s /bin/bash odoo# 建立一個具有sudo能力的“odoo”使用者
# passwd odoo # 請求併為新使用者設定密碼
你可以將odoo轉換為你想要的任何使用者名稱。–m選項確保建立其主目錄。–g sudo選項將它新增到sudoers列表中,以便它可以作為root執行命令。–s /bin/bash選項將預設的shell設定為bash,這比預設的sh要好。
現在我們可以作為新使用者登入,並設定Odoo。
從源程式中安裝Odoo
可以在nightly.odoo.com,上找到現成的Odoo軟體包,如Windows(.exe)、Debian(.deb)、CentOS(.rpm)和原始碼tarballs(.tar.gz)。
作為開發人員,我們希望直接從GitHub儲存庫中安裝它們。這將使我們對版本和更新有更多的控制。
為了保持整潔,在我們的主目錄home內建立一個 /odoo–dev子目錄以便進行工作。
在整本書中,我們假設/odoo–dev 是您的Odoo伺服器安裝的目錄。
首先,確保您已經登入為我們現在或在安裝過程中建立的使用者,而不是作為root使用者。假設您的使用者是odoo,請使用以下命令確認:
$ whoami odoo
$ echo $HOME
/home/odoo
現在我們可以使用這個指令碼了。它向我們展示瞭如何將Odoo從原始碼安裝到Debian / Ubuntu系統中。
首先,安裝基本的依賴項,以使我們開始:
$ sudo apt-get update && sudo apt-get upgrade#安裝系統更新
$ sudo apt-get install git# 安裝Git
$ sudo apt-get install npm# 安裝NodeJs及其包管理器
$ sudo ln -s /usr/bin/nodejs /usr/bin/node# 呼叫節點執行nodejs
$ sudo npm install -g less less-plugin-clean-css#安裝less編譯器
從版本9.0開始,Odoo web客戶端需要在系統中安裝less CSS前處理器,以便正確地呈現web頁面。要安裝這個,我們需要節點。Node.js和npm。
接下來,我們需要獲得Odoo原始碼並安裝它的所有依賴項。Odoo原始碼包括一個實用指令碼,在odoo/setup/目錄中,幫助我們在Debian / Ubuntu系統中安裝所需的依賴項:
$ mkdir ~/odoo-dev# Create a directory to work in
$ cd ~/odoo-dev# Go into our work directory
$ git clone https://github.com/odoo/odoo.git -b 10.0 --depth=1# Get Odoo sourcecode
$ ./odoo/setup/setup_dev.py setup_deps# Installs Odoo system dependencies
$ ./odoo/setup/setup_dev.py setup_pg# Installs PostgreSQL & db superuser for unixuser
最後,Odoo應該準備好使用。~符號是我們的主目錄(例如,/home/odoo)的快捷方式。git –b lO.O選項告訴Git明確下載Odoo的10.0分支。在寫的時候,這是多餘的,因為10.0是預設的分支;然而,這可能會改變,因此它可能使指令碼成為未來的證明。––depth=l選項告訴Git只下載最後一個版本,而不是完整的變更歷史,使下載變得更小更快。
要啟動一個Odoo伺服器例項,只需執行:
$ ~/odoo-dev/odoo/odoo-bin
在預設情況下,Odoo例項偵聽埠8069,因此如果我們將瀏覽器指向http://<server–address>:8O69,我們將到達這些例項。當我們第一次訪問它時,它向我們展示了一個建立新資料庫的助手,如下面的截圖所示:
作為開發人員,我們需要使用幾個資料庫,因此從命令列建立它們更方便,因此我們將學習如何做到這一點。現在在終端按Ctrl + C停止Odoo伺服器並返回命令提示符。
初始化一個新的Odoo資料庫
為了能夠建立一個新的資料庫,您的使用者必須是一個PostgreSQL超級使用者。下面的命令為當前的Unix使用者建立一個PostgreSQL超級使用者:
$ sudo createuser --superuser $(whoami)
要建立一個新的資料庫,請使用createdb命令。讓我們建立一個demo資料庫:
$ createdb demo
要使用Odoo資料模式初始化該資料庫,我們應該使用–d選項在空資料庫上執行Odoo:
$ ~/odoo-dev/odoo/odoo-bin -d demo
這將花費幾分鐘來初始化一個demo資料庫,它將以一個資訊日誌訊息結束,Modules loaded。
注意,它可能不是最後一個日誌訊息,它可以在最後三到四行。這樣,伺服器就可以準備好偵聽客戶端請求了。
預設情況下,這將用演示資料初始化資料庫,這通常對開發資料庫非常有用。若要初始化沒有演示資料的資料庫––without–demo–data=all。
現在開啟http://<server–name>:8069,你的瀏覽器會被顯示在登入螢幕上。如果您不知道您的伺服器名稱,在終端中鍵入hostname命令,以便找到它或ifconfig命令來查詢IP地址。
如果您在虛擬機器中託管Odoo,您可能需要設定一些網路配置,以便能夠從主機系統訪問它。最簡單的解決方案是將虛擬機器網路型別從NAT改為橋接。這樣,客戶虛擬機器就不會共享主機IP地址,而是擁有自己的IP地址。也可以使用NAT,但這需要您配置埠轉發,這樣您的系統就知道一些埠,比如8069,應該由虛擬機器來處理。如果您遇到麻煩,希望這些細節將幫助您在您所選擇的虛擬化軟體的文件中找到相關資訊。
管理資料庫
我們已經瞭解瞭如何從命令列建立和初始化新的Odoo資料庫。有更多的命令值得管理資料庫。
我們已經知道如何使用createdb命令建立空的資料庫,但是它也可以通過複製現有的資料庫建立一個新的資料庫––template選項
確保您的Odoo例項被停止,並且您沒有開啟的其他連線我們剛剛建立的demo資料庫,然後執行這個:
$ createdb --template=demo demo-test
實際上,每次建立資料庫時,都會使用模板。如果沒有指定,則使用預定義的templatel。
要列出系統中的現有資料庫,可以使用–l選項使用PostgreSQL psql實用程式:
$ psql -l
執行它將列出我們迄今為止建立的兩個資料庫: demo和demo–test。該列表還將顯示每個資料庫中使用的編碼。預設值是UTF-8,這是Odoo資料庫所需的編碼。
要刪除不再需要的資料庫(或者需要重新建立)來使用dropdb命令:
$ dropdb demo-test
現在您知道了使用資料庫的基礎知識。瞭解更多關於PostgreSQL,請參考官方文件:http://www.postgresql.org/docs/.
刪除資料庫命令將不可挽回地破壞您的資料。使用此命令時要小心,並且在使用此命令之前,總是要對重要的資料庫進行備份。
更多內容請訪問開源智造(OSCG)官網-【資源下載】中獲取《Odoo開發指南》進行詳細閱讀,這裡非常感謝老楊為我們Odoo社群所做出的重大貢獻努力,使得整體Odoo開發從業水平整體大幅度提高。