A simple sqlalchemy connection configuration manager
Project description
db_hooks
Extremely beta sqlalchemy and toml based sql connection manager.
config file
db_hooks
looks for a local config file at ./.databases.toml
in your working directory and then looks for a global config file using the appdirs library. Right now there isn't an obvious way to find this path, but running db_hooks list
will bomb with a useful error message if the file isn't there. In general, try these locations:
os | location |
---|---|
linux | ~/.local/share/db_hooks/databases.toml |
osx | ~/Library/Application Support/db_hooks/databases.toml |
windows 10 | ~\AppData\local\jfhbrook\db_hooks |
Keys in the TOML file are connection names. Under those are key/value pairs for the various parameters in a connection. Connections support the following parameters:
connection
- a sqlalchemy-compatible connstring. May have a{password}
f-string parameter.password_cmd
- a bash command that will be executed in order to fetch the password, which will be applied toconnection
as an f-string.
In general, one would use password_cmd
to write a small snippet that fetches the password. This is designed to allow the most flexibility and therefore will depend on your needs.
For example, you may have a local postgres account and want to read the password using zenity
:
[pg_example]
connection = "postgresql+psycopg2://josh:{password}@localhost:5432/josh"
password_cmd = "zenity --password"
in your code
Once you have a connection configured, you can load a sqlalchemy engine using
the get_engine
API:
from db_hooks import get_engine
engine = get_engine('pg_example')
This will pull the connection, run your password_cmd
and give you a configured sqlalchemy engine.
Note that get_engine
is cached with a cachetools.TTLCache
configured with a ttl of 10 minutes.
the cli
db_hooks
exposes a CLI that will launch either psql
or mysql
in a manner appropriate to the underlying connection. You can run db_hooks --help
for hopefully useful help output.
licensing
This library is licensed under the Apache Software License. See the LICENSE and NOTICE files for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for db_hooks-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9597ea248a4bd582148485c0f168eebf1ff80fbcf7effedbb470eb197e90b62 |
|
MD5 | 29a8c705ac02f4efd8f83d803febc171 |
|
BLAKE2b-256 | 8a9a911d10b574ee32408c6c3d344509de2f81aec60be18bb27bea4d8a54e426 |