1
0
Fork 0

update update-postgres script

This commit is contained in:
Malte Brandy 2022-06-05 00:42:58 +02:00
parent 09c0e9db92
commit 38b5e3ebde

View file

@ -3,26 +3,32 @@
pkgs,
...
}: {
containers.temp-pg.config.services.postgresql = {
enable = true;
package = pkgs.postgresql_14;
};
environment.systemPackages = let
newpg = config.containers.temp-pg.config.services.postgresql;
# script from:
# https://nixos.org/manual/nixos/stable/index.html#module-postgresql
# 1) bump toVersion; rebuild
# 2) run this script
# 3) bump postgres; rebuild
# 4) run analyze_new_cluster.sh; delete_old_cluster.sh from the database dir.
toVersion = "14"; # Bump this when there is a new version.
new_package = "postgres_${toVersion}";
in [
(pkgs.writeScriptBin "upgrade-pg-cluster" ''
set -x
set -eux
systemctl stop postgresql
export NEWDATA="/var/lib/postgresql/${toVersion}"
export NEWBIN="${pkgs.${new_package}}/bin"
export OLDDATA="${config.services.postgresql.dataDir}"
export NEWDATA="${newpg.dataDir}"
export OLDBIN="${config.services.postgresql.package}/bin"
export NEWBIN="${newpg.package}/bin"
install -d -m 0700 -o postgres -g postgres "$NEWDATA"
cd "$NEWDATA"
sudo -u postgres $NEWBIN/initdb -D "$NEWDATA"
systemctl stop postgresql # old one
sudo -u postgres $NEWBIN/pg_upgrade \
--old-datadir "$OLDDATA" --new-datadir "$NEWDATA" \
--old-bindir $OLDBIN --new-bindir $NEWBIN \