pgpm 0.1.62

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

pgpm 0.1.62

pgpm is a package manager for Postgres database.
Its main features include deployment of postgres objects (schemas, tables, functions, etc.), tracking of DDL changes and execution of arbitrary scripts across multiple data sources.

Installation
Prerequisites: Postgres 9.4+, python 2.7/3.4+.

Install psycopg2. This cannot be easily resolved with pip as the library relies on Postgres binaries. The step is not always trivial, though Google will certainly enlighten the path.
Run

$ pip install pgpm

Install pgpm in every postgres database you’ll be using with pgpm (must be a superuser). E.g.:

$ pgpm install "postgresql://postgres:postgres@localhost:5432/testdb"
Note: connection string must conform libpg format.


Main concepts

Package
In pgpm a package is a set of files in a directory with valid config.json (see below) file. When package is being deployed, pgpm reads the configuration and executes sql scripts from files specified in the package configuration.
Note: config.json file must be present in a root directory of the package in order to use deployment feature of pgpm


Config
pgpm uses config.json file for a configuration of a package. Configuration file must be a single valid JSON object with the following properties:


Property name
Required/Optional
Value
Description



name
required
string
Name of the package (for details see section ‘Name of the package’)

description
optional
string
Description of the package

subclass
required
string, accepts values: basic and versioned
Type of the package when deployed as a DB schema.
For details see section ‘Versioned or not versioned schema’

scope
required
string, accepts values: SCHEMA and DATABASE,
defaults to SCHEMA
Whether the the deployment should be bound to a specific schema or be for the whole DB.
For details see section ‘Scope of package’.

version
required
string, accepts values with the following format:
[0..9][0..9]_[0..9][0..9]_[0..9][0..9]
Version of the package.
For details see section ‘Versioned or not versioned schema’.

functions_path
optional
string
A relative path (relative to the root directory of the package) to the folder with source code for stored procedures
For details see section ‘Object types’.

tables_path
optional
string
A relative path (relative to the root directory of the package) to the folder with sql scripts that change table definitions
For details see section ‘Object types’.

types_path
optional
string
A relative path (relative to the root directory of the package) to the folder with source code for types definitions
For details see section ‘Object types’.

triggers_path
optional
string
A relative path (relative to the root directory of the package) to the folder with source code for triggers (not trigger functions, they go to functions_path)
For details see section ‘Object types’.




Name of the package
TODO


Test info


Versioned or not versioned schema
TODO


Scope of package
TODO


Object types
TODO



General config
TODO



Main features

Package deployment
TODO


DDL change logging
TODO


pgpm schema
TODO



TODOs

Provide support for DDL evolutions and dependency management.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.