SQLAlchemy: Get database name from engine
Question:
After creating an SQLALchemy engine
like this
engine = create_engine('mssql+pyodbc://user:pass@dbserver:port/db_name?driver=ODBC+Driver+13+for+SQL+Server)
Is there a way to get db_name
from the engine-object? I know I can parse the name from the connection string but is there a better way of doing this? I had a look at the SQLAlchemy-API but couldn’t find an answer.
Answers:
The engine provides the connection information, so you can access those parameters. For example, if you’re in the debugger, you can do:
(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']
So the simple way to get at the database name is:
engine.url.database
To contribute to the question, I created a gist with an example:
https://gist.github.com/johnidm/5089d7dc1a1ab7d9a98be611906541d1
After creating an SQLALchemy engine
like this
engine = create_engine('mssql+pyodbc://user:pass@dbserver:port/db_name?driver=ODBC+Driver+13+for+SQL+Server)
Is there a way to get db_name
from the engine-object? I know I can parse the name from the connection string but is there a better way of doing this? I had a look at the SQLAlchemy-API but couldn’t find an answer.
The engine provides the connection information, so you can access those parameters. For example, if you’re in the debugger, you can do:
(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']
So the simple way to get at the database name is:
engine.url.database
To contribute to the question, I created a gist with an example:
https://gist.github.com/johnidm/5089d7dc1a1ab7d9a98be611906541d1