A logical database management system for PostgreSQL enabling incremental database deployment.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.travis
cli
docs
psqlpack
samples
.editorconfig
.gitignore
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
Cargo.lock
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
Makefile
README.md
release.sh
rustfmt.toml

README.md

psqlpack   Build Status

Documentation

Psqlpack is a database development tool that is intended to make working with PostgreSQL databases more productive. It was originally inspired by Microsoft SQL Server sqlpackage and currently supports the following tasks:

  • Extract: Builds a psqlpack package (.psqlpack file) from an existing database target.
  • New: Generate a starting template for a psqlpack project (.psqlproj file) or generate a new publish profile (.publish file) defining properties as to how a database schema should be update.
  • Package: Create a psqlpack package (.psqlpack file) from a source psqlpack project (.psqlproj).
  • Publish: Incrementally update a database schema to match the schema of a source .psqlpack file or .psqlproj project. If the database does not exist on the server, the publish operation will create it. Otherwise, an existing database will be updated.
  • Report: Generate a JSON report of changes that would be made by a publish action.
  • Script: Create an SQL script of the incremental changes that would be applied to the target in order to match the schema of source.

Is it ready to be used?

Psqlpack can be currently used depending on the features you need for deployment. This project is under active development, so if something is found to be missing then please raise an issue. The following list is a state of feature development:

Data Object Support

Feature Status
Schemas Supported
Tables Supported
Types Supported
Primary and Foreign Keys Supported
Functions Partial
Indexes Partial
Views NotStarted
Materialized Views NotStarted
Security Objects NotStarted
Extensions Partial
Triggers NotStarted

License

Licensed under either of these:

Contributing

Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in the work, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.