2.4 KiB
Updating Postgres
Minor Versions
When upgrading to a new minor version of Postgres, please follow these steps:
Example: 15.4 is the new minor version to upgrade to from 15.3.
-
Clone the Neon Postgres repository if you have not done so already.
git clone git@github.com:neondatabase/postgres.git -
Add the Postgres upstream remote.
git remote add upstream https://git.postgresql.org/git/postgresql.git -
Create a new branch based on the stable branch you are updating.
git checkout -b my-branch REL_15_STABLE_neon -
Tag the last commit on the stable branch you are updating.
git tag REL_15_3_neon -
Push the new tag to the Neon Postgres repository.
git push origin REL_15_3_neon -
Find the release tags you're looking for. They are of the form
REL_X_Y. -
Rebase the branch you created on the tag and resolve any conflicts.
git fetch upstream REL_15_4 git rebase REL_15_4 -
Run the Postgres test suite to make sure our commits have not affected Postgres in a negative way.
make check # OR meson test -C builddir -
Push your branch to the Neon Postgres repository.
git push origin my-branch -
Clone the Neon repository if you have not done so already.
git clone git@github.com:neondatabase/neon.git -
Create a new branch.
-
Change the
revisions.jsonfile to point at the HEAD of your Postgres branch. -
Update the Git submodule.
git submodule set-branch --branch my-branch vendor/postgres-v15 git submodule update --remote vendor/postgres-v15 -
Run the Neon test suite to make sure that Neon is still good to go on this minor Postgres release.
./scripts/poetry -k pg15 -
Commit your changes.
-
Create a pull request, and wait for CI to go green.
-
Force push the rebased Postgres branches into the Neon Postgres repository.
git push --force origin my-branch:REL_15_STABLE_neonIt may require disabling various branch protections.
-
Update your Neon PR to point at the branches.
git submodule set-branch --branch REL_15_STABLE_neon vendor/postgres-v15 git commit --amend --no-edit git push --force origin -
Merge the pull request after getting approval(s) and CI completion.