Skip to content

felixyz/pgpkg

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

107 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pgpkg - simplifies Postgresql stored procedure development.

pgpkg logo

pgpkg is a small and fast command-line tool (and Go library) that lets your pl/pgSQL functions live side-by-side with regular code, allowing you to use the exact same workflows, source code control, IDE (or non-IDE) and other development workflows for both SQL and non-SQL code. It automatically deploys your functions without the need to maintain migration scripts.

You can edit your SQL functions in the same IDE, commit them to the same Git repository, review them with PRs alongside native code changes, and deploy them seamlessly to production.

pgpkg also lets you package up your SQL code and incorporate it as a dependency into other projects, similar to Node packages or Go modules, but note that dependency support is still early days.

Documentation

The best place to start is the pgpkg man page.

An initial, detailed set of documentation is here. I have been focusing on writing the manual and tutorial, so other documents may currently be out of date.

Tutorial

The tutorial for using pgpkg contains a worked example for writing functions, unit tests and migration scripts. If you're familiar with Postgresql, it will only take a few minutes to work through.

Status

pgpkg is late alpha. I apologise in advance if documentation or examples are out of date.

I use pgpkg pretty much on a daily basis. It works really well for me, and I'm working to remove the rough edges.

I work on making it easier to use when I have time. The TODO list contains issues that I expect to fix over time.

PRs and issues are welcome.

License

pgpkg is licensed under the same terms as Postgresql itself.

Contributing

Contributors welcome. Contact me at mark@commandquery.com

Release Notes

  • 2024-10-11 Added Migrations clause to pgpkg.toml. @migration.pgpkg is now deprecated. See the faq for more details.
  • 2024-10-11 --force-role option allows the default package role name to be overridden.
  • 2024-10-11 removed character set restriction from schema names in TOML files.

About

pgpkg is a small, fast CLI tool and Go library that enables seamless integration of PostgreSQL functions into native code workflows. It integrates pl/pgsql code management, transactional migrations, SQL unit tests, importable packages, code watching, an SQL REPL, and more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PLpgSQL 55.1%
  • Go 44.8%
  • Shell 0.1%