django-postgresql-manager Help
========================================================================
This file contains detailed information on how to configure and use
``django-postgresql-manager``.


PostgreSQL Administrator Role
=============================
This application requires that you create a PostgreSQL (refered to as *Pg*
hereafter) role which will be used for the role and database management.

While in the Pg shell as a superuser, create the *administrator* role::

    CREATE ROLE administrator WITH LOGIN CREATEDB CREATEROLE PASSWORD '1234';



Configuration
=============
This section outlines the configuration options that need to be set in your
Django project's ``settings.py`` file.

Add an extra database connection, named ``PostgreSQL_manager_conn``,
which will be used to connect to the PostgreSQL cluster using the
``administrator`` role::

    DATABASES = {
        ...
        # Database connection settings for PostgreSQL_manager
        'PostgreSQL_manager_conn': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'postgres',
            'USER': 'administrator',
            'PASSWORD': '1234',
            'HOST': 'localhost',
            'PORT': '5432',
            'OPTIONS': {
                'autocommit': True,
            },
        },
        ...
    }

**Important Note**: It should be noted that the ``PostgreSQL_manager_conn``
database connection is only used to perform role and database management
on the PostgreSQL Cluster. No extra databases or tables will be created.
The ``PostgreSQL_manager`` application specific tables will be created in
the Django project's default database, which may exist in any database
backend.

Add the ``PostgreSQL_manager`` app in the ``INSTALLED_APPS`` setting::

    INSTALLED_APPS = (
        ...
        'PostgreSQL_manager',
        ...
    )

Optional Configuration Settings
-------------------------------
``PostgreSQL_manager`` supports the following configuration settings:

**PGMANAGER_FORBIDDEN_USER_NAMES**
    A list of role names that should not be used. By default, the following role
    names are forbidden: postgres, postgresql, pg, admin, administrator, root,
    sys, system.
**PGMANAGER_FORBIDDEN_DATABASE_NAMES**
    A list of database names that should not be used. By default, the following
    names are forbidden: postgres, template0, template1.


Synchronize the Django Project database
---------------------------------------
Finally synchronize your project database::

    python manage.py syncdb

