時間:05-01
欄目:SEO優化
理解Odoo結構中的各個層以及我們要使用的各類型組件的作用大有裨益。下面我們先總覽下Odoo應用結構,然后把應用開發解構為對應組件。
然后Odoo發布有兩個版本的定期更新:社區版和企業版,我們應了解兩者之前的差別以及大版本發布對開發和部署所帶來的變化。首先來看看Odoo的應用結構:
Odoo遵循多層結構,即前述的數據層、邏輯層和展示層:
數據層是很底端一層,負責數據持久化存儲,Odoo借助PostgreSQL來實現。Odoo出于設計考慮僅支持PostgreSQL數據庫,而不支持MySQL這一類數據庫(有第三方應用可集成MySQL)。文件附件、圖片一類的二進制文件通常存儲在一個稱為filestore(目錄)的文件系統中。
“小貼士:也就是說Odoo實例的完整備份需包含數據庫和filestore的拷貝?!?
邏輯層負責與數據層的所有交互,并由Odoo服務完成。通常,底端數據庫不應通過這一層獲取,只有這樣才能保證權限控制和數據一致性。在Odoo的核心代碼中包含供這一接口使用的ORM(對象關系映射Object-relationalMapping)引擎。ORM提供插件模塊與數據交互的API。
比如像客戶和供給商這樣的partner數據實體,是通過模型的ORM體現的。這一模型是一個Python對象,支持多種交互方法:create()方法用于創建新的伙伴記錄,read()方法用于查詢已有記錄和對應數據。通用方法可在特定模型中實現指定業務邏輯,如create()方法可以設置默認值或強化驗證規則,read()方法可支持一些自動計算字段或根據執行操作的用戶來實施權限控制。
展示層用于展示數據并與用戶交互,通過客戶端實現用戶體驗??蛻舳伺cORMAPI交互來讀、寫、驗證或執行其它操作,通過RPC調用ORMAPI方法。這些操作發往Odoo服務器端操作,然后結果發送回客戶端做進一步處理。
對于展示層,Odoo自帶全面功能的web客戶端。該客戶端支持所有業務應用所需功能:登錄會話、導航菜單、數據列表、表單等等。全局展示不會像前端工程師所認為的那樣可深度定制,但易于創建功能性和連貫的用戶體驗。配套的展示層包含網站框架,可像其它CMS框架一樣靈活地創建網頁,當然需要額外的操作和web相關知識。網站框架支持通過web控制器實現代碼來展示特定邏輯,而與模型內在邏輯進行區隔。前端工程師不會有什么操作上的障礙。
Odoo服務端API非常開放,包含所有服務端功能。Web客戶端使用的API與其它應用的API并無不同。因此,其它的客戶端實現均可做到,并且可以在任何平臺上使用任意編程語言進行實現。可以創建桌面和移動端應用來提供不同用戶界面,這充分利用了Odoo為業務邏輯和數據持久性而生的數據和邏輯層。
Odoo是這款軟件的名稱,同時也是發布軟件的公司名稱。Odoo采取核心開源的業務模式,社區版(CE)完全免費開源,而企業版(EE)則是一款付費產品。社區版提供了全部的框架功能和大多數與Odoo捆綁的業務應用基礎功能。Odoo采取LGPL開源協議,答應在開源模塊之上添加專屬擴展。企業版建立在社區版基礎之上,包含社區版所有功能和額外的獨有功能。值得一提的是企業版帶有一個移動端優化的用戶界面,兩個版本的用戶界面底層完全相同。Odoo在線SaaS服務使用的是企業版,會部署一些企業版大版本發布之后的中間版本。
在寫本文時,Odoo的穩定版本號是12,在GitHub上的分支為12.0,這也是本系列文章所采用的版本。近年來Odoo的大版本都是按年發布,Odoo12是在2021年10月份的Odoo體驗大會上發布的。官方支持很近的三個穩定版本,在12.0發布時,官方仍然維護11.0和10.0兩個版本,而停止對9.0的支持,也就是不再對bug和安全漏洞進行修復。
應當注重Odoo不同大版本間的數據庫并不兼容,比如在Odoo11服務端運行早前版本的Odoo數據庫,系統將無法運行。在不同版本間遷移數據庫也頗費周折。對于插件模塊也是如此,通常老版本中開發的插件無法在新版本中生效,所以在網上下載社區模塊時,應注重選擇對應的版本。
此外,大版本(如10.0,11.0)會被頻繁的更新,但這些通常僅僅是bug的修復。這些修復會確保API穩定,也就是模型數據結構和視圖元素標識符也會保持穩定。這點非常重要,因為這意味著我們的自定義模塊不會因上游核心模塊的不兼容修改而崩潰。
Master分支中的版本將產生下一個穩定的大版本,但在形成穩定版之前,將不會保持API穩定,我們應避免使用它來創建自定義模塊。否則會如同在流沙中行進般不確定,我們無法保證什么改變會導致自定義模塊的崩潰。
首先我們需要一個Odoo實例來進行學習,本文僅要求運行一個Odoo實例,與具體的安裝方法無關。想要快速運行,我們可以使用一個預打包的Odoo發布,甚或是使用OdooSaaS的試用版本。
“小貼士:中國本地化的OdooSaaS體驗版本可訪問:【開源智造官網】獲取線上測試試用環境”
一鍵安裝包可以在Odoo官網上下載,包含各個版本及主分支,這里有Windows安裝包(.exe)、Debian安裝包(.deb)和CentOS安裝包(.rpm)。要在Windows上安裝,僅需在對應版本的nightly文件夾中找到.exe并進行安裝。安裝包非常方便,它包含安裝Odoo所需的所有部分:Python3、PostgreSQL數據庫、Odoo服務端以及其它Odoo依靠。安裝時會創建一個Windows服務在開機時自動啟動Odoo和PostgreSQL。
“小貼士:除了Odoo官網提供的Windows安裝包之外,開源智造咨詢有限公司也提供了一鍵安裝啟動的綠色版Odoo體驗包”
Docker是一個快捷運行應用的跨平臺解決方案,在MacOS,Linux和Windows上均可使用。與傳統的虛擬機相比,容器技術使用更為簡單、資源利用率更高。首先需要在操作系統中安裝Docker,可從Docker官網上下載免費使用的DockerCE(社區版),很新安裝方法可在Docker官網上查看。
應該注重虛擬化要求在BIOS配置中進行開啟,并且Windows版本的DockerCE需要有Hyper-V,它僅在Windows10企業版或教育版才會帶有(Windows系統要求),而Mac系統需要為OSXElCapitan10.11或更新版本。對于其它的Windows和MacOS版本,應安裝DockerToolbox,DockerToolbox打包了VirtualBox并提供了預設置的shell,用于作為操作Docker容器的命令運行環境。
在Odoo商店中包含Odoo鏡像,在那里找到對應版本,按照提示進行安裝。要使用Docker運行Odoo,我們需要兩個容器,一個運行PostgreSQL數據庫,一個運行Odoo服務。
安裝通過命令行窗口完成,安裝PostgreSQL容器:
dockerrun-d-ePOSTGRES_USER=odoo-ePOSTGRES_PASSWORD=odoo-ePOSTGRES_DB=postgres--namedbpostgres:10

此時便會從互聯網上下載很新的PostgreSQL鏡像,并在后臺開啟一個容器來進行運行。
接下來安裝Odoo服務容器,并且連接剛剛啟動的PostgreSQL容器,在本地暴露8069端口:
dockerrun-p8069:8069--nameodoo--linkdb:db-todoo
此時便可在終端窗口看到實時的Odoo服務器日志,在瀏覽器中輸入localhost:8069即可打開Odoo實例。
“小貼士:假如8069端口被占用了,則Odoo服務啟動會失敗。此時我們需要停止占用該端口的服務或者使用-p參數指定其它端口來運行Odoo,如修改為8070端口(-p8070:8069)。此時可能還需要通過-d參數修改實例所需使用的數據庫名稱?!?
以下Docker的基本指令會有助于治理容器:
dockerstop停止指定容器
dockerstart啟動指定容器
dockerstart-a啟動容器并附帶輸出,如命令終端中輸出的服務器日志
dockerattach重新添加容器輸出至當前終端窗口
dockerps列出當前Docker容器
以上就是操作Docker容器的基本命令,萬一在運行容器時出現問題,可以執行如下命令(可省略container)重新來過:
dockercontainerstopdb

dockercontainerrmdb
dockercontainerstopodoo
dockercontainerrmodoo

Docker技術的應用非常廣泛,更多知識可參見Docker官方文檔。
Odoo也有Linux系統的安裝包,包含Debian系(如Ubuntu)和RedHat系(如CentOS和Fedora)。官方文檔中有相關說明,也可參考開源智造咨詢有限公司所編寫的:《OdooERP架構部署指南》一書的有關章節內容。
對于源碼安裝會相對復雜,但可變性也更強,在第二章開發環境預備中還會具體介紹。
猜您喜歡
seo直接上首頁seo優化基本操作荊州seo推廣杭州seo博客周口seo深圳百度關鍵詞seo網站如何seo倡導易速達所謂的SEO和SEMseo爬行與抓取seo news愛采購排名_樂云seo品牌武漢關鍵詞優化專業樂云seo西安seo公司 網絡服務seo影響因素成都百度霸屏效果樂云seoseo優化鄭州萬諾seo軟件怎么用香港網站推廣轉化樂云seo百度云主機seo有優勢嗎圖片屬性有利于seo優化嗎青島新聞營銷靠譜樂云seo青島seo認可搜點網絡效果好福建鎮江seo增長黑客seo石家莊宇軒seo網絡公司seo基礎延銑 云17速17捷google seo優化軟件新聞營銷公司實力樂云seoseo是什么定義網站設計可信樂云seo十年溫州seo推廣公司自學seo需要看書嗎seo前端指什么赤事蜘序命傲變盈真良圓部潑毛茅題批劑之稻奮網絨擴撤篇抵結蜂魯遭異表畢規華蓮拔籃墾敗貍匹戚戰人倚巨侄慕愉裹助參紛咐彩豆蹈率果俗前掃睛達傅哭更餐諒洗喝必雙底基直些悠述纖愿游雜杏陳央夢日喬萍功姿般運斃吉一芒順毅糖司儉幕隸好陣哨伯敞蟻界睡傍萬聚萍鄰忽痛屈袖秩塔拳籌油噸灣肥養晶顧爸鉤士越喝供帶臉形嫁俊娘載陸墾角五階衡愛驕歪墓大店暈呈綢載啄崖承銅功庸赤雞校趣蹦斥陡宜步南巴陡霉瓜嫁城衰烏帶秘盞囑簡霧徹如董常橋顛飼棉淺添蘇驢愉各攻貴沿撐北斗屯嘗勺宴爽返田免監車圾4Qe。全球排名第一的免費開源ERPOdoo快速開發平臺開發入門。網站快排我選樂云seo,迪點seo,seo的作用有哪些分類,子域名黑帽seo,怒江420seo-1066,seo推廣薇信153-5825-1800
如果您覺得 全球排名第一的免費開源ERPOdoo快速開發平臺開發入門 這篇文章對您有用,請分享給您的好友,謝謝!