/django-manual-db-partitioning

This project is a proof-of-concept implementation of the vertical database table partitioning made purely in Python.

Primary LanguagePython

This project is a proof-of-concept implementation of the vertical database
table partitioning made purely in Python.


Recommendations:

	* Clone into a virtualenv

	* Install these PyPI packages:

	    django~=1.9.0
	    psycopg2
	    useful

	* Create database:

	    CREATE ROLE dmdp LOGIN ENCRYPTED PASSWORD 'dmdp';
	    CREATE DATABASE "dmdp" WITH ENCODING='UTF8' OWNER=dmdp;
 
	* Run this to create the first set of models::

		/path/to/venv/bin/python ./manage.py migrate

	* Run this to exercise the code::

		/path/to/venv/bin/python ./manage.py dataplay


Drawbacks:

New partitions get created via *standard* Django migrations, so no other
infrastructure is involved, which is good.

But the same also means new monthly partitions only get created (as time goes by)
via the *source code change* using the `makemigrations` management command.