SQLAlchemy:从引擎获取数据库名称

时间:2018-11-30 09:13:24

标签: sql-server python-3.x

像这样创建SQLALchemy engine之后

engine = create_engine('mssql+pyodbc://user:pass@dbserver:port/db_name?driver=ODBC+Driver+13+for+SQL+Server)

是否可以从引擎对象中获取db_name?我知道我可以从连接字符串中解析名称,但是有更好的方法吗?我看了SQLAlchemy-API,但找不到答案。

2 个答案:

答案 0 :(得分:1)

引擎提供了连接信息,因此您可以访问这些参数。例如,如果您在调试器中,则可以执行以下操作:

(pdb) pp dir(dbconn.engine.url)
[...
 'database',
 'drivername',
 'get_backend_name',
 'get_dialect',
 'get_driver_name',
 'host',
 'password',
 'password_original',
 'port',
 'query',
 'translate_connect_args',
 'username']

因此获取数据库名称的简单方法是:

engine.url.database

答案 1 :(得分:0)

我相信您是对的,无法打印数据库名称,但是,如果需要,您可以提取默认架构名称或检查可用的架构

from sqlalchemy import inspect inspector=inspect(engine ) inspector.default_schema_name