This experimental project has now been archived and is no longer maintained.
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.
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:
Feature | Status |
---|---|
Schemas | |
Tables | |
Types | |
Primary and Foreign Keys | |
Functions | |
Indexes | |
Views | |
Materialized Views | |
Security Objects | |
Extensions | |
Triggers |
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.