Skip to main content

Library contains django commands which helps to prepare and manage PostgreSQL database.

Project description

Django-psycopg2-extension

Library contains django commands which helps to prepare and manage PostgreSQL database.

Quickstart

Install djjango-psycopg2-extension

pip install django-psycopg2-extension

Add psycopg2_extension to your INSTALLED_APPS:

INSTALLED_APPS = [
    # Django apps...
    'psycopg2_extension',
]

Commands

psqlinit

Django command psqlinit create a database defined in django settings.

You can define specific database settings with standard django DATABASE settings:

DATABASES = {
    'default': {
        ...
        'EXTENSIONS': ['postgis', 'unaccent'],  # extensions to be installed with psqlinit command
        'SNAPSHOT_FILE': Path('data', 'sql', 'local', 'init_default.sql'), # SQL which will be loaded after database initialization
    },
}

Snapshot and extensions are automatically loaded when database is preparing for tests too.

psqlclean

PostgreSQL database requires often call VACUUM and REINDEX. The command psqlclean performs these operations.

You can define specific database settings for psqlclean command with standard django DATABASE settings:

DATABASES = {
    'default': {
        ...
        'VACUUM': {
            'EXCLUDE': ['users_user'],  # list of excluded tables
            'TABLES': ['users_permission'],  # list of tables to vacuum, all tables are selected if the setting is not set
            'TABLES_FULL': ['users_permission'],  # list of tables to vacuum full
            'TABLES_REINDEX': ['users_permission'],  # list of tables to reindex
        }
    },
}

psqlsnapshot

Command which creates SQL dump with pg_dump script and store it to the database 'SNAPSHOT_FILE' setting.

psqlviews

Command which creates views defined in 'VIEWS' setting.

DATABASES = {
    'default': {
        ...
        'VIEWS': {
            'MODELS': {
                'auth.users': ['id', 'email', 'first_name', 'last_name'], # Model name and list of fields
            },
            'SCHEMA': 'public', # Schema name
        }
    }
}

Now you can call psqlviews command to create or remove views.

./manage.py psqlviews --create
./manage.py psqlviews --delete

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-psycopg2-extension-0.2.1.tar.gz (7.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page