This commit is contained in:
Oliver
2025-09-26 16:27:40 -03:00
parent ac8f70d368
commit bb271b8d71
15 changed files with 199 additions and 48 deletions

View File

@@ -1,5 +1,6 @@
#!/bin/bash
dump_config (){
echo "========== Odoo Container Configuration =========="
echo "UUID: $UUID"

View File

@@ -6,16 +6,23 @@ if [ ! -n "$2" ]; then
fi
UUID=$1
echo "UUID: $UUID"
source /4server/sbin/helpers
get_contract_info
export ODOO_DB_PASSWORD=$(echo "$SECRET" | jq -r '.psql')
echo "PASSWORD $ODOO_DB_PASSWORD"
echo "Restoring $FILENAME to $1"
echo "status of container"
doas docker ps -a --filter "id=$UUID"
echo "POSTGRES HOST: $POSTGRES_HOST"
BACKUP="/mnt/backup/$2"
TEMPLATE="/mnt/db_images/$2"
echo "TEMPLATE"
doas docker exec "${1%}" /bin/bash -c "[ -f $TEMPLATE ]"
if doas docker exec "${1%}" /bin/bash -c "[ -f $BACKUP ]"; then
@@ -28,32 +35,30 @@ else
fi
### DELETE DATABASE
### DELETE AND CREATE DATABASE
PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql -h "$POSTGRES_HOST" -U "$POSTGRES_ADMIN_USER" -d postgres -c "
SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE datname = '$UUID' AND pid <> pg_backend_pid();
"
PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql -h "$POSTGRES_HOST" -U "$POSTGRES_ADMIN_USER" -d postgres -c "
DROP DATABASE IF EXISTS \"$UUID\";
"
PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql \
-h "$POSTGRES_HOST" -U "$POSTGRES_ADMIN_USER" -p "$POSTGRES_PORT" -d postgres \
-c "DROP DATABASE IF EXISTS \"$UUID\";"
-c "ALTER ROLE \"$1\" CREATEDB;"
doas docker exec "${1%}" rm -rf /home/odoo/.local/share/Odoo/filestore
echo "deleting old restore artifacts"
doas docker exec "${1%}" rm -rf /root/.local/
doas docker exec "${1%}" odoo db --db_host beedb -w "$ODOO_DB_PASSWORD" -r "$1" load "$1" $FILENAME -f
if [[ "$1" == *"_"* ]]; then
echo "Neutralize DB"
doas docker exec "${1%_}" odoo db --db_host beedb -w "${1%_}" -r "$1" load "$1" $FILENAME -f --neutralize
else
echo "No Neutralize DB"
doas docker exec "${1%}" odoo db --db_host beedb -w "${1%_}" -r "$1" load "$1" $FILENAME -f
fi
doas docker exec "${1%}" cp -r /root/.local/. /var/lib/odoo/.local/
doas docker exec "${1%}" chown -R odoo:odoo /var/lib/odoo/.local/
### transfer ownership
PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql \
-h "$POSTGRES_HOST" -U "$POSTGRES_ADMIN_USER" -p "$POSTGRES_PORT" -d postgres \
-c "ALTER DATABASE \"$UUID\" OWNER TO \"$UUID\";"
-c "ALTER ROLE \"$1\" NOCREATEDB;"
doas docker exec "${1%}" cp -r /root/.local/share/Odoo/filestore /home/odoo/.local/share/Odoo/filestore
doas docker exec "${1%}" chown -R odoo:odoo /home/odoo/.local/share/Odoo/filestore
docker restart "${1%}"