Skip to content

Commit adc5851

Browse files
authored
Update readme and setup (#23)
1 parent 9119fcc commit adc5851

File tree

3 files changed

+68
-71
lines changed

3 files changed

+68
-71
lines changed

README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
![PyPI - Django Version](https://img.shields.io/pypi/djversions/django-postgrespool2)
2+
[![PyPI - License](https://img.shields.io/pypi/l/django-postgrespool2)](https://github.com/lcd1232/django-postgrespool2/blob/master/LICENSE)
3+
[![PyPI](https://img.shields.io/pypi/v/django-postgrespool2)](https://pypi.org/project/django-postgrespool2/)
4+
5+
# Django-PostgresPool2
6+
This is simple PostgreSQL connection pooling for Django. You can use it as an alternative for [PgBouncer](https://www.pgbouncer.org/).
7+
This is a fork of the original [django-postgrespool](https://github.com/kennethreitz/django-postgrespool).
8+
9+
## Installation
10+
11+
Installing Django-PostgresPool2 is simple, with pip:
12+
```bash
13+
$ pip install django-postgrespool2
14+
```
15+
16+
## Usage
17+
18+
Using Django-PostgresPool2 is simple, just set `django_postgrespool2` as your connection engine:
19+
```python
20+
DATABASES = {
21+
"default": {
22+
"ENGINE": "django_postgrespool2",
23+
"NAME": "yourdb",
24+
"USER": "user",
25+
"PASSWORD": "some_password",
26+
"HOST": "localhost",
27+
}
28+
}
29+
```
30+
If you're using the [environ](https://github.com/joke2k/django-environ) module:
31+
```python
32+
import environ
33+
34+
env = environ.Env()
35+
36+
DATABASES = {"default": env.db("DATABASE_URL", engine="django_postgrespool2")}
37+
```
38+
Everything should work as expected.
39+
40+
Configuration
41+
-------------
42+
43+
Optionally, you can provide pool class to construct the pool (default `sqlalchemy.pool.QueuePool`) or additional options to pass to SQLAlchemy's pool creation.
44+
List of possible values `DATABASE_POOL_CLASS` is [here](https://docs.sqlalchemy.org/en/14/core/pooling.html#api-documentation-available-pool-implementations)
45+
```python
46+
DATABASE_POOL_CLASS = 'sqlalchemy.pool.QueuePool'
47+
48+
DATABASE_POOL_ARGS = {
49+
'max_overflow': 10,
50+
'pool_size': 5,
51+
'recycle': 300,
52+
}
53+
```
54+
Here's a basic explanation of two of these options:
55+
56+
- **pool_size** – The *minimum* number of connections to maintain in the pool.
57+
- **max_overflow** – The maximum *overflow* size of the pool. This is not the maximum size of the pool.
58+
- **recycle** - Number of seconds between connection recycling, which means upon checkout, if this timeout is surpassed the connection will be closed and replaced with a newly opened connection.
59+
60+
The total number of "sleeping" connections the pool will allow is `pool_size`. The total simultaneous connections the pool will allow is `pool_size + max_overflow`.
61+
62+
As an example, databases in the [Heroku Postgres](https://www.heroku.com/postgres) starter tier have a maximum connection limit of 20. In that case your `pool_size` and `max_overflow`, when combined, should not exceed 20.
63+
64+
Check out the official [SQLAlchemy Connection Pooling](http://docs.sqlalchemy.org/en/latest/core/pooling.html#sqlalchemy.pool.QueuePool.__init__) docs to learn more about the optoins that can be defined in `DATABASE_POOL_ARGS`.

README.rst

Lines changed: 0 additions & 66 deletions
This file was deleted.

setup.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
31
from setuptools import setup, find_packages
42
from django_postgrespool2 import __version__, __author__
5-
import codecs
63

74
required = [
85
"sqlalchemy>=1.1",
@@ -12,8 +9,9 @@
129
setup(
1310
name="django-postgrespool2",
1411
version=__version__,
15-
description="Postgres Connection Pooling for Django.",
16-
long_description=codecs.open("README.rst", "r", "utf-8").read(),
12+
description="PostgreSQL connection pooling for Django.",
13+
long_description=open("README.md", encoding="utf-8").read(),
14+
long_description_content_type="text/markdown",
1715
author=__author__,
1816
author_email="malexey1984@gmail.com",
1917
url="https://github.com/lcd1232/django-postgrespool2",
@@ -38,4 +36,5 @@
3836
"Framework :: Django :: 3.1",
3937
"Topic :: Database",
4038
),
39+
keywords=["postgresql", "django", "pool", "pgbouncer",]
4140
)

0 commit comments

Comments
 (0)