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.0.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21a9776e4a4130981ad65f00205acd8d830dfbc73411e8104e7b6482d8db8974 |
|
MD5 | 7e5a71a17bb3dd597452243de0899af8 |
|
BLAKE2b-256 | b795206a4efb2f05eac0e204e0e455236222c7de81701017ec27cedabbd0b1ef |