mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-06-01 13:24:04 +02:00
Clean postgres database
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
## 15.7-37 (29-05-2025)
|
|
||||||
|
|
||||||
- BREAKING CHANGE : please backup your database before updating
|
- BREAKING CHANGE : please backup your database before updating
|
||||||
- Automatically restarts immich addons after upgrade
|
- Automatically restarts immich addons after upgrade
|
||||||
- Describe list of databases and extensions in log
|
- Describe list of databases and extensions in log
|
||||||
- Improve upgrade system for postgres and extensions
|
- Improve upgrade system for postgres and extensions
|
||||||
|
- Drop vectors from postgres database (not needed)
|
||||||
- Switch to new image supporting both vector.rs and VectorChord to support immich https://github.com/immich-app/immich/releases/tag/v1.133.0
|
- Switch to new image supporting both vector.rs and VectorChord to support immich https://github.com/immich-app/immich/releases/tag/v1.133.0
|
||||||
|
|
||||||
## 15.7-29 (15-02-2025)
|
## 15.7-29 (15-02-2025)
|
||||||
|
|||||||
@@ -39,5 +39,5 @@
|
|||||||
"slug": "postgres",
|
"slug": "postgres",
|
||||||
"udev": true,
|
"udev": true,
|
||||||
"url": "https://github.com/alexbelgium/hassio-addons/tree/master/postgres",
|
"url": "https://github.com/alexbelgium/hassio-addons/tree/master/postgres",
|
||||||
"version": "15.7-37"
|
"version": "15.7-38"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,36 +84,33 @@ install_vchord_and_vectors_for_old_pg() {
|
|||||||
rm -f "$vectors_deb"
|
rm -f "$vectors_deb"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ───---- NEW drop_vectors_everywhere ----──────────────────────────────
|
# ───---- drop_vectors_extension ----──────────────────────────────
|
||||||
drop_vectors_everywhere() {
|
drop_vectors_extension() {
|
||||||
local old_pgver="$1"
|
local pgver="$1"
|
||||||
|
local databases="$2"
|
||||||
|
local extname="vectors"
|
||||||
|
local bin_dir="$BINARIES_DIR/$pgver/bin"
|
||||||
|
local dbs=""
|
||||||
|
|
||||||
# 1. start the old cluster on a private socket/port
|
if [ "$databases" = "all" ]; then
|
||||||
su - postgres -c "$BINARIES_DIR/$old_pgver/bin/pg_ctl \
|
dbs=$(su - postgres -c \
|
||||||
-w -D '$PGDATA' -o \"-c config_file=/etc/postgresql/postgresql.conf \
|
"$bin_dir/psql -Atc \"SELECT datname FROM pg_database WHERE datistemplate = false AND datallowconn\"" )
|
||||||
-c listen_addresses='' -c port=65432\" start"
|
else
|
||||||
|
dbs="$databases"
|
||||||
|
fi
|
||||||
|
|
||||||
# 2. loop over non-template databases
|
for db in $dbs; do
|
||||||
for db in $(su - postgres -c \
|
# Does the extension exist in this db?
|
||||||
"$BINARIES_DIR/$old_pgver/bin/psql -Atc \
|
|
||||||
\"SELECT datname FROM pg_database
|
|
||||||
WHERE datistemplate = false AND datallowconn\""); do
|
|
||||||
# does the extension exist?
|
|
||||||
if su - postgres -c \
|
if su - postgres -c \
|
||||||
"$BINARIES_DIR/$old_pgver/bin/psql -d $db -Atc \
|
"$bin_dir/psql -d $db -Atc \"SELECT 1 FROM pg_extension WHERE extname='$extname'\"" | grep -q 1; then
|
||||||
\"SELECT 1 FROM pg_extension WHERE extname='vectors'\"" \
|
bashio::log.warning "Dropping extension $extname from DB $db"
|
||||||
| grep -q 1; then
|
|
||||||
bashio::log.warning "Dropping extension vectors from DB $db"
|
|
||||||
su - postgres -c \
|
su - postgres -c \
|
||||||
"$BINARIES_DIR/$old_pgver/bin/psql -d $db -c \
|
"$bin_dir/psql -d $db -c 'DROP EXTENSION $extname CASCADE;'"
|
||||||
'DROP EXTENSION vectors CASCADE;'"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# 3. stop the cluster again
|
|
||||||
su - postgres -c "$BINARIES_DIR/$old_pgver/bin/pg_ctl -w -D '$PGDATA' stop"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
upgrade_postgres_if_needed() {
|
upgrade_postgres_if_needed() {
|
||||||
CLUSTER_VERSION=$(get_pgdata_version)
|
CLUSTER_VERSION=$(get_pgdata_version)
|
||||||
IMAGE_VERSION="$PG_MAJOR_VERSION"
|
IMAGE_VERSION="$PG_MAJOR_VERSION"
|
||||||
@@ -153,7 +150,7 @@ upgrade_postgres_if_needed() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Drop vectors
|
# Drop vectors
|
||||||
drop_vectors_everywhere "$CLUSTER_VERSION"
|
drop_vectors_extension "$CLUSTER_VERSION" all
|
||||||
|
|
||||||
# Create postgresql.conf if not existing
|
# Create postgresql.conf if not existing
|
||||||
cp -n --preserve=mode "/var/postgresql-conf-tpl/postgresql.hdd.conf" /etc/postgresql/postgresql.conf
|
cp -n --preserve=mode "/var/postgresql-conf-tpl/postgresql.hdd.conf" /etc/postgresql/postgresql.conf
|
||||||
@@ -378,6 +375,9 @@ upgrade_extension_if_needed() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Drop vectors from the postgres database, this is not needed
|
||||||
|
drop_vectors_extension "$PG_MAJOR_VERSION" "postgres"
|
||||||
|
|
||||||
upgrade_extension_if_needed "vectors"
|
upgrade_extension_if_needed "vectors"
|
||||||
upgrade_extension_if_needed "vchord"
|
upgrade_extension_if_needed "vchord"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user