The 0k dev-pack's compose script doesn't handle absolute paths correctly. It passes HOST_COMPOSE_YML_FILE to the container, which tries to open it directly instead of using the mounted path. Add run_compose() wrapper that changes to PROJECT_ROOT before calling compose with a relative path, ensuring consistent behavior regardless of the current working directory.
53 lines
1.9 KiB
Bash
Executable File
53 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
DB_NAME="$1"
|
|
ODOO_SERVICE="$2"
|
|
|
|
echo "Running SQL cleanup..."
|
|
CLEANUP_SQL=$(cat <<'EOF'
|
|
-- Drop sequences that prevent Odoo from starting.
|
|
-- These sequences are recreated by Odoo on startup but stale values
|
|
-- from the old version can cause conflicts.
|
|
DROP SEQUENCE IF EXISTS base_registry_signaling;
|
|
DROP SEQUENCE IF EXISTS base_cache_signaling;
|
|
|
|
-- Reset website templates to their original state.
|
|
-- Views with arch_fs (file source) that have been customized (arch_db not null)
|
|
-- are reset to use the file version, EXCEPT for actual website pages which
|
|
-- contain user content that must be preserved.
|
|
UPDATE ir_ui_view
|
|
SET arch_db = NULL
|
|
WHERE arch_fs IS NOT NULL
|
|
AND arch_fs LIKE 'website/%'
|
|
AND arch_db IS NOT NULL
|
|
AND id NOT IN (SELECT view_id FROM website_page);
|
|
|
|
-- Purge compiled frontend assets (CSS/JS bundles).
|
|
-- These cached files reference old asset versions and must be regenerated
|
|
-- by Odoo after migration to avoid broken stylesheets and scripts.
|
|
DELETE FROM ir_attachment
|
|
WHERE name LIKE '/web/assets/%'
|
|
OR name LIKE '%.assets_%'
|
|
OR (res_model = 'ir.ui.view' AND mimetype = 'text/css');
|
|
EOF
|
|
)
|
|
query_postgres_container "$CLEANUP_SQL" "$DB_NAME"
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
PYTHON_SCRIPT="${SCRIPT_DIR}/lib/python/fix_duplicated_views.py"
|
|
echo "Remove duplicated views with script $PYTHON_SCRIPT ..."
|
|
exec_python_script_in_odoo_shell "$DB_NAME" "$DB_NAME" "$PYTHON_SCRIPT"
|
|
|
|
PYTHON_SCRIPT="${SCRIPT_DIR}/lib/python/cleanup_modules.py"
|
|
echo "Uninstall obsolete add-ons with script $PYTHON_SCRIPT ..."
|
|
exec_python_script_in_odoo_shell "$DB_NAME" "$DB_NAME" "$PYTHON_SCRIPT"
|
|
|
|
# Give back the right to user to access to the tables
|
|
# docker exec -u 70 "$DB_CONTAINER_NAME" pgm chown "$FINALE_SERVICE_NAME" "$DB_NAME"
|
|
|
|
|
|
# Launch Odoo with database in finale version to run all updates
|
|
run_compose --debug run "$ODOO_SERVICE" -u all --log-level=debug --stop-after-init --no-http
|