#! /bin/bash # Régénère la config Solr depuis Drupal (search_api_solr) et l'écrit dans un arbre du dépôt solr_cores, # puis recharge les cores (RELOAD, sans restart). # # bin/update_solr_config.sh -> solr_cores (branche prod, Solr 8, :8985) # bin/update_solr_config.sh solr_cores_stage URL -> worktree stage (Solr 9, phase 2) # # Les modifications restent à relire / committer dans l'arbre visé (git diff). cd "$(dirname "${BASH_SOURCE[0]}")/.." || exit 1 TREE=${1:-solr_cores} SOLR=${2:-http://localhost:8985/solr} CORES="materio_base materio_autocomplete" [ -d "$TREE/materio_base/conf" ] || { echo "arbre $TREE invalide" >&2; exit 1; } docker exec -i materiod8-php-1 drush cdel search_api_solr.solr_field_type.text_edgestring_ascii_und_6_0_0 docker exec -i materiod8-php-1 drush cdel search_api_solr.solr_field_type.text_string_ascii_und_6_0_0 docker exec -i materiod8-php-1 drush dre materio_sapi docker exec -i materiod8-php-1 drush solr-gsc database_search_autocomplete config.zip || exit 1 mkdir -p ressources/solr/ mv public_html/web/config.zip ressources/solr/ || exit 1 for core in $CORES; do unzip -o ressources/solr/config.zip -d "$TREE/$core/conf" done for core in $CORES; do out=$(curl -s "$SOLR/admin/cores?action=RELOAD&core=$core&wt=json") if echo "$out" | grep -q '"status":0'; then echo "RELOAD $core OK"; else echo "RELOAD $core ÉCHEC : $out" >&2; fi done git -C "$TREE" status --short