oslo_db是openstak中封裝數據庫訪問sqlachmy的模塊,網上搜索的資源並不多,除了openstack官方文檔,在實際使用中的例子鳳毛麟角。
有感於資源太少,在學習heat源碼的過程中,有所感悟,記錄下,以便於循序漸進地進行學習。在當前的openstack Q版本中,因為oslo_db聚合了oslo_context,在分析中更為復雜
1.在RequestContext 類中,session方法建立數據庫連接session,源碼如下:
@property def session(self): if self._session is None: self._session = db_api.get_session() return self._session
在使用中,oslo_db的目錄結構如下:
db下面的api,定義數據庫訪問的接口,sqlalchemy中的api是具體實現類,model是數據庫訪問的元類
數據庫接口api 代碼:
在sqlalchemy的實現api中,下面使用get_session的query 進行數據庫訪問
oslo_db訪問數據庫demo見連接 https://github.com/CaesarLinsa/oslo_learn