https://github.com/pyapp-org/pyapp.sqlalchemy
🔌 SQLAlchemy extension
https://github.com/pyapp-org/pyapp.sqlalchemy
Last synced: about 1 year ago
JSON representation
🔌 SQLAlchemy extension
- Host: GitHub
- URL: https://github.com/pyapp-org/pyapp.sqlalchemy
- Owner: pyapp-org
- License: other
- Created: 2019-05-28T15:14:39.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-12-09T23:39:15.000Z (over 6 years ago)
- Last Synced: 2025-06-09T17:52:36.492Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
##################
pyApp - SQLAlchemy
##################
*Let us handle the boring stuff!*
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
:alt: Once you go Black...
.. image:: https://api.codeclimate.com/v1/badges/0a86755f39f0416fbd1e/maintainability
:target: https://codeclimate.com/github/pyapp-org/pae.sqlalchemy/maintainability
:alt: Maintainability
This extension provides a `Connection` and `Session` factory for SQLAlchemy to
allow database connections to be configured via pyApp settings.
`Engine` instances are created from a singleton factory to ensure that
connection pooling is utilised.
The extension also provides checks to confirm the settings are correct and
that the application is able to connect to the database host.
Installation
============
Install using *pip*::
pip install pyapp-sqlalchemy
Install using *pipenv*::
pipenv install pyapp-sqlalchemy
Add the `DATABASE_ENGINES` block into your runtime settings file::
DATABASE_ENGINES = {
"default": {
"url": "postgres://user:pass@host:port/database",
},
}
.. note::
The URI is a defined by SQLAlchemy see the
`documentation `_. In addition to
the url any argument that can be provided to `sqlalchemy.engines.create_engine` can be
provided.
Usage
=====
The following example creates both `Connection` and `Session` instances::
from pyapp_ext.sqlalchemy import get_connection, get_session
# Get connection from default connection pool
cnn = get_connection()
# Get connection from an alternate pool
session = get_session("Alternate")
API
===
`pyapp_ext.sqlalchemy.get_engine(default: str = None) -> Engine`
Get named `Engine` instance (singleton)
`pyapp_ext.sqlalchemy.get_connection(default: str = None) -> Connection`
Get named `Connection` instance.
`pyapp_ext.sqlalchemy.get_raw_connection(default: str = None)`
Get named *raw* connection, this is the underlying Python DBAPI object.
`pyapp_ext.sqlalchemy.get_session(default: str = None) -> Session`
Get named `Session` instance.