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 (
.psqlpackfile) from an existing database target.
- New: Generate a starting template for a psqlpack project (
.psqlprojfile) or generate a new publish profile (
.publishfile) defining properties as to how a database schema should be update.
- Package: Create a psqlpack package (
.psqlpackfile) from a source psqlpack project (
- Publish: Incrementally update a database schema to match the schema of a source
.psqlprojproject. 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?
Probably not. There are many features missing including SQL constructs as well as validations. This project is under development (albeit slowly), 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
|Primary and Foreign Keys|
Licensed under either of these:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.