AppBoxFuture實戰: 如何同步開發與生產環境的模型

  框架是用抽象模型驅動的方式來生成應用系統的,這樣可以將這些模型序列化爲相應的模型包文件,通過反序列化導入至其他部署環境內,從而實現開發環境與生產環境的同步,包括對應的數據庫結構的同步。下面通過示例來演示如何操作:

一、準備測試應用

  • 通過New->Application創建一個新應用,名稱如:erp;
  • 選擇新建的應用的Entities目錄,通過New->Entity新建一個實體模型並映射至Default存儲內,隨便添加些屬性;
  • 選擇新建的應用的Services目錄,通過New->Service新建一個服務模型,隨便實現一個服務方法;
  • 選擇新建的應用的Views目錄,通過New->View新建一個視圖模型;
  • 通過Models->Publish發佈當前應用。

二、導出應用模型包

  通過AppStore->Export Application選擇相應的應用導出,參考以下動圖:

三、導入應用模型包

  導入應用模型包時框架會判斷當前是否存在相同的應用,如果存在則會進行新舊模型的比對,進行相應的添加、刪除、更新模型的操作,如果不存在則簡單導入整個應用。在這裏我們先嚐試導入整個應用,所以先通過選擇剛剛創建的應用,點擊Models->Delete刪除掉,然後再通過AppStore->Import Application重新導入,參考以下動圖:

注意:如果模型包使用了非默認數據庫,導入前需要先創建相同名稱相同類型的存儲模型。

四、更新應用模型包

  以上步驟導入了一個新的應用,下面步驟嘗試更新應用:

  • 修改模型:比如實體模型添加一個屬性或添加一個索引,服務模型修改一下邏輯;
  • 重新發布並導出爲新的應用模型包;
  • 刪除當前應用,導入舊的應用模型包(步驟二導出),查看一下模型定義;
  • 再重新導入新的應用包(本步驟導出),再查看一下模型是否更新了,另外可看一下數據庫的數據表結構是否同步更新了。

五、本篇小結

  模型包的導入導出功能一方面可以方便同步開發與生產環境,另一方面作者將來想建設一個應用及外包市場,這樣大家就可以在市場上下載模型包直接導入修改。GitHub/enjoycode上用於測試的Windows的部署包[appbox.deploy.win]也由GitHub Action自動更新,Linux請自行編譯測試。另一邊碼代碼一邊碼文實屬不易,作者需要您的支持請您多多點贊推薦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章