Update 99-run.sh

This commit is contained in:
Alexandre
2025-06-23 21:30:45 +02:00
committed by GitHub
parent 2703a10624
commit 6403cd102c

View File

@@ -245,6 +245,8 @@ upgrade_extension_if_needed() {
if compare_versions "$installed_version" "$available_version"; then if compare_versions "$installed_version" "$available_version"; then
bashio::log.info "Upgrading $extname in $db from $installed_version to $available_version" bashio::log.info "Upgrading $extname in $db from $installed_version to $available_version"
if psql -h "$DB_HOSTNAME" -p "$DB_PORT" -U "$DB_USERNAME" -d "$db" -v ON_ERROR_STOP=1 -c "ALTER EXTENSION $extname UPDATE;"; then if psql -h "$DB_HOSTNAME" -p "$DB_PORT" -U "$DB_USERNAME" -d "$db" -v ON_ERROR_STOP=1 -c "ALTER EXTENSION $extname UPDATE;"; then
bashio::log.info "Reindexing database $db"
psql -h "$DB_HOSTNAME" -p "$DB_PORT" -U "$DB_USERNAME" -d "$db" -v ON_ERROR_STOP=1 -c "REINDEX DATABASE $db;"
RESTART_NEEDED=true RESTART_NEEDED=true
else else
bashio::log.error "Failed to upgrade $extname in $db. Aborting startup." bashio::log.error "Failed to upgrade $extname in $db. Aborting startup."
@@ -348,41 +350,6 @@ upgrade_postgres_if_needed() {
fi fi
} }
needs_vectorchord_reindex() {
for db in $(get_user_databases); do
bashio::log.info "Checking for broken vectorchord indexes in $db..."
if ! psql -h "$DB_HOSTNAME" -p "$DB_PORT" -U "$DB_USERNAME" -d "$db" -v ON_ERROR_STOP=1 -c "
SELECT indexrelid::regclass
FROM pg_index i
JOIN pg_class c ON c.oid = i.indexrelid
WHERE pg_get_indexdef(i.indexrelid) ILIKE '%vectorchord%'
LIMIT 1;" >/dev/null 2>&1; then
bashio::log.info "Reindex required in $db (likely vectorchord format error)"
return 0 # Reindex needed
fi
done
return 1 # No reindex needed
}
reindex_vectorchord_indexes() {
bashio::log.info "Reindexing VectorChord indexes..."
for db in $(get_user_databases); do
affected_indexes=$(psql -h "$DB_HOSTNAME" -p "$DB_PORT" -U "$DB_USERNAME" -d "$db" -At -c "
SELECT indexrelid::regclass::text
FROM pg_index i
JOIN pg_class c ON c.oid = i.indexrelid
WHERE pg_get_indexdef(i.indexrelid) ILIKE '%vectorchord%'
AND indisvalid;
")
for idx in $affected_indexes; do
bashio::log.info "Reindexing $idx in $db..."
if ! psql -h "$DB_HOSTNAME" -p "$DB_PORT" -U "$DB_USERNAME" -d "$db" -c "REINDEX INDEX CONCURRENTLY \"$idx\";"; then
bashio::log.warning "Failed to reindex $idx in $db. You may need to reindex it manually."
fi
done
done
}
main() { main() {
bashio::log.info "Checking for required PostgreSQL cluster upgrade before server start..." bashio::log.info "Checking for required PostgreSQL cluster upgrade before server start..."
if [ -f /config/database/PG_VERSION ]; then if [ -f /config/database/PG_VERSION ]; then
@@ -410,11 +377,6 @@ main() {
upgrade_extension_if_needed "vectors" upgrade_extension_if_needed "vectors"
upgrade_extension_if_needed "vchord" upgrade_extension_if_needed "vchord"
if needs_vectorchord_reindex; then
reindex_vectorchord_indexes
else
bashio::log.info "No VectorChord reindexing needed."
fi
show_db_extensions show_db_extensions
if [ "$RESTART_NEEDED" = true ]; then if [ "$RESTART_NEEDED" = true ]; then