-
-
Notifications
You must be signed in to change notification settings - Fork 290
Description
Goodbye pgx
, Hello pgrx
For various reasons it is necessary for us to rename pgx
.
The core team, through much deliberation and consternation, have decided on pgrx
.
This is short for "PostGres Rust Extension", which isn't far off from whatever pgx
might have meant (I'm not sure there was an official definition!).
We realize this is a huge inconvenience, but having the courage to change the things we can goes a long way. The underlying reasons are entirely outside of the core team's control.
When?
We intend the name change to be official in what will be pgrx v0.7.4
.
This release will be exactly the same as pgx v0.7.4
, only with everything renamed. There will be no other code changes.
We intend to rename to pgrx v0.7.4
today, April 17, 2023.
This should allow existing pgx users to migrate their code to the new name without fear of other changes sneaking into their code.
What About crates.io
?
The currently released pgx-0.7.4
crates will continue to live on crates.io for all eternity, however they will no longer be updated.
How do we migrate our source code?
pgrx
is close enough to pgx
that a global, case-preserving search-n-replace on your code should work just fine. That's exactly what we did to rename pgx, along with renaming directories and a few files that contained "pgx" in the filename.
There are a few edge cases you might encounter:
- if you used
pgXX
to denote a variable major version - if you use
PgXactCallback
orpg_sys::pgxactoff
pgxs
may be referenced if you have custom build code. This is a Postgres Makefile variable that has nothing to do with PGRX.
What About cargo-pgx
?
It will be called cargo-pgrx
and will default to a (now renamed) $PGRX_HOME
directory of ~/.pgrx/
instead of ~/.pgx/
.
This means you'll need to cargo uninstall cargo-pgx && cargo install cargo-pgrx --locked
.
You may have active instances of Postgres that are managed by cargo pgx. It is best to shut these down before running cargo pgrx init
. Rebooting your computer is the simplest way to accomplish this.