oslo_db使用

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

原文地址:https://www.cnblogs.com/CaesarLinsa/p/9978558.html