django-postgresql-manager Help

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

How to read this document

This document is written in reStructuredText (rst). Although reStructuredText is an easy-to-read plain text markup format, it is recommended to convert it to HTML for a better reading experience.

In order to convert this document to HTML you need docutils, which you can install in your system using pip:

pip install docutils

Or easy_install:

easy_install docutils

Once docutils is installed, you can use the rst2html.py utility to do the conversion:

rst2html.py HELP help.html

Then use any web browser to view the exported help.html file.

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