这篇“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”文章吧。
测试环境:
操作系统:CentOS 7.9 64-bit
数据库版本:GBase8sV8.8_AEE_3.0.0_1,对应的CSDK版本为3.0.0_1
确认已经安装python3和python3-devel
[root@localhost test]# python3 -V Python 3.6.8
如果没有安装,建议使用yum install python3来安装。
升级pip的版本
[root@localhost test]# python3 -m pip install --upgrade --force-reinstall pip WARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead. Collecting pip Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB) 100% |████████████████████████████████| 1.7MB 235kB/s Installing collected packages: pip Successfully installed pip-21.3.1 [root@localhost test]# pip3 list WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip. Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue. To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. Package Version ---------- ------- pip 21.3.1 setuptools 39.2.0
解压到指定目录/opt下,生成/opt/gbase8s-odbc-driver目录
[root@localhost test]# ll 总用量 35188 -rw-r--r--. 1 root root 36029237 3月 11 20:52 GBase8s_3.0.0_1-Linux64-ODBC-Driver.tar.gz [root@localhost test]# tar -zxf GBase8s_3.0.0_1-Linux64-ODBC-Driver.tar.gz -C /opt/ [root@localhost test]# cd /opt/ [root@localhost opt]# ll 总用量 4 drwxr-xr-x. 20 gbasedbt gbasedbt 4096 3月 10 15:14 gbase drwxrwxr-x. 9 1001 1003 88 12月 13 2020 gbase8s-odbc-driver drwxr-xr-x. 2 root root 6 10月 31 2018 rh
创建必须的环境变量,并使环境生效
export GBASEDBTDIR=/opt/gbase8s-odbc-driver export CSDK_HOME=/opt/gbase8s-odbc-driver export PATH=$GBASEDBTDIR/bin:$PATH export LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH
创建sqlhosts配置文件
[root@localhost test]# vi /opt/gbase8s-odbc-driver/etc/sqlhosts [root@localhost test]# more /opt/gbase8s-odbc-driver/etc/sqlhosts gbase01 onsoctcp a02.gbasedbt.com 9088
确认python3、python3-devel和gcc均已经安装,CSDK也已经安装以及环境变量已经配置的情况下,可直连网络的情况下,可使用pip3 install sqlalchemy-gbasedbt直接安装
[root@localhost test]# pip3 install sqlalchemy-gbasedbt Collecting sqlalchemy-gbasedbt Using cached sqlalchemy_gbasedbt-0.2.4-py3-none-any.whl (10 kB) Collecting DbtPy Using cached DbtPy-3.0.5.4.tar.gz (162 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: sqlalchemy in /usr/local/lib64/python3.6/site-packages (from sqlalchemy-gbasedbt) (1.4.46) Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib64/python3.6/site-packages (from sqlalchemy->sqlalchemy-gbasedbt) (2.0.2) Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.6/site-packages (from sqlalchemy->sqlalchemy-gbasedbt) (4.8.3) Requirement already satisfied: typing-extensions>=3.6.4 in /usr/local/lib/python3.6/site-packages (from importlib-metadata->sqlalchemy->sqlalchemy-gbasedbt) (4.1.1) Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/site-packages (from importlib-metadata->sqlalchemy->sqlalchemy-gbasedbt) (3.6.0) Using legacy 'setup.py install' for DbtPy, since package 'wheel' is not installed. Installing collected packages: DbtPy, sqlalchemy-gbasedbt Running setup.py install for DbtPy ... done Successfully installed DbtPy-3.0.5.4 sqlalchemy-gbasedbt-0.2.4
将同时安装依赖包:sqlalchemy、greenlet、importlib-metadata、typing-extensions、zipp和DbtPy,安装后的pip3列表如下:
[root@localhost test]# pip3 list Package Version ------------------- ------- DbtPy 3.0.5.4 greenlet 2.0.2 importlib-metadata 4.8.3 pip 21.3.1 setuptools 39.2.0 SQLAlchemy 1.4.46 sqlalchemy-gbasedbt 0.2.4 typing_extensions 4.1.1 zipp 3.6.0
测试demo文件
#!/usr/bin/env python3 # Filename: testSqlalchemy_gbasedbt from sqlalchemy import MetaData, Table, Column, String, create_engine from sqlalchemy.dialects import registry from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base registry.register("gbasedbt", "sqlalchemy_gbasedbt.dbtdb", "GBasedbtDialect") # 创建对象的基类: Base = declarative_base() # 定义User对象: class User(Base): # 表的名字: __tablename__ = 'user' # 表的结构: id = Column(String(20), primary_key=True) name = Column(String(20)) # 初始化数据库连接: # ConStr = 'gbasedbt://<username>:<password>@<host name>:<port number>/<databasename>;SERVER=<server name>' ConStr = 'gbasedbt://gbasedbt:GBase123@a02.gbasedbt.com:9088/testdb;SERVER=gbase01;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;DELIMIDENT=y' engine = create_engine(ConStr) # 创建对象 Base.metadata.create_all(engine) # 创建DBSession类型: DBSession = sessionmaker(bind=engine) # 创建session对象: session = DBSession() # 创建新User对象: new_user = User(id='2', name='测试用户') # 添加到session: session.add(new_user) # 提交即保存到数据库: session.commit() # 关闭session: session.close() # 创建Session: session = DBSession() # 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行: user = session.query(User).filter(User.id=='2').one() # 打印类型和对象的name属性: print('type:', type(user)) print('name:', user.name) # 关闭Session: session.close()
测试结果:
[root@localhost test]# ./testSqlalchemy_gbasedbt.py
type: <class '__main__.User'>
name: 测试用户
以上就是关于“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。