update update-postgres script
This commit is contained in:
parent
09c0e9db92
commit
38b5e3ebde
|
@ -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 \
|
||||
|
|
Loading…
Reference in a new issue