Configuration

This section contains information about how to configure your Django projects to use django-postgresql-manager and also contains a quick reference of the available settings that can be used in order to customize the functionality of this application.

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';

Configuring your project

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.

In the Django project’s settings module, add postgresql_manager to the INSTALLED_APPS setting:

INSTALLED_APPS = (
    ...
    'postgresql_manager',
)

Reference of the application settings

The following settings can be specified in the Django project’s settings module to customize the functionality of django-postgresql-manager.

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 project database

Finally, synchronize the project’s database using the following command:

python manage.py syncdb

Table Of Contents

Previous topic

Installation

Next topic

Usage

This Page