#!/usr/bin/env bash # ============================================================================= # mustikas Drupal 7 -> Drupal 11 migratsioon (ohmu dev) # ============================================================================= # Jooksutab kogu migratsiooni algusest lõpuni. Käivita root õigustega: # sudo bash migrate_mustikas11.sh # # NB! Töötab AINULT ohmu serveril. Production (hetzner) jääb puutumata. # Andmebaas dr_mustikas on hetznerist sünkroonitud koopia (vt mustikas # sync_from_hetzner.sh). Selle skripti jooksutamine EI muuda hetznerit. # # "Viimaste andmete ülekandmine" (lõppsünk): # 1. Jooksuta esmalt värske sünk hetznerist: # sudo bash /opt/docker-compose/third/drupal/mustikas/sync_from_hetzner.sh # (see värskendab ohmu dr_mustikas andmebaasi + D7 failid) # 2. Jooksuta see skript, et uus sisu D11-sse migreerida: # sudo bash /opt/docker-compose/third/drupal/mustikas11/migrate_mustikas11.sh # ============================================================================= set -euo pipefail C="drupal_mustikas11" DRUSH="php -d memory_limit=1024M /opt/drupal/vendor/drush/drush/drush.php" echo "=== $(date): Alustan D7->D11 migratsiooni ===" # ── 0. Pre-migratsiooni parandused (source DB andmevead) ── echo "[0/5] Pre-migratsiooni parandused (source DB) ..." docker exec "$C" sh -c "cd /opt/drupal && $DRUSH scr /tmp/fix_er_sort.php" docker exec "$C" sh -c "cd /opt/drupal && $DRUSH scr /tmp/fix_text_maxlength.php" echo " parandused tehtud." # ── 1. Migratsiooni konfiguratsiooni loomine ── echo "[1/5] Migratsiooni konfiguratsioon ..." docker exec "$C" sh -c "cd /opt/drupal && $DRUSH migrate-upgrade --configure-only \ --legacy-db-url=mysql://root:ai_root_pass_2026@mariadb/dr_mustikas \ --legacy-root=https://mustikas.maastikuarhitekt.ee -y" echo " konfiguratsioon loodud." # ── 2. Esmane import (dependencies) ── echo "[2/5] Esmane import (group migrate_drupal_7) ..." docker exec "$C" sh -c "cd /opt/drupal && $DRUSH migrate:import \ --group=migrate_drupal_7 --continue-on-failure -y" || true # ── 3. Puuduvad custom field storage'id ── echo "[3/5] Custom field storage'id ..." docker exec "$C" sh -c "cd /opt/drupal && $DRUSH scr /tmp/fix_fields.php" docker exec "$C" sh -c "cd /opt/drupal && $DRUSH scr /tmp/fix_fields2.php" # ── 4. Sisumigratsioonid (rollback + re-import, et parandused kehtiksid) ── echo "[4/5] Sisu migratsioon ..." for m in \ upgrade_d7_field \ upgrade_d7_field_instance \ upgrade_d7_node_complete_kanne \ upgrade_d7_node_complete_emal_liige \ upgrade_d7_node_complete_projekt \ upgrade_d7_node_complete_book \ upgrade_d7_node_complete_page \ upgrade_d7_node_complete_php \ upgrade_d7_node_complete_filedepot_folder \ upgrade_d7_url_alias \ upgrade_d7_user \ upgrade_d7_file \ upgrade_d7_menu \ upgrade_d7_menu_links; do docker exec "$C" sh -c "cd /opt/drupal && $DRUSH migrate:rollback $m -y" || true done docker exec "$C" sh -c "cd /opt/drupal && $DRUSH scr /tmp/fix_fields.php" docker exec "$C" sh -c "cd /opt/drupal && $DRUSH scr /tmp/fix_fields2.php" docker exec "$C" sh -c "cd /opt/drupal && $DRUSH migrate:import \ --group=migrate_drupal_7 --continue-on-failure -y" || true # ── 5. Failide omanik + puhver ── echo "[5/5] Failide omanik (www-data) + puhver ..." docker exec "$C" sh -c "chown -R www-data:www-data /opt/drupal/web/sites/default/files" || true docker exec "$C" sh -c "chmod -R u+rwX,g+rwX,o+rX /opt/drupal/web/sites/default/files" || true docker exec "$C" sh -c "cd /opt/drupal && $DRUSH cache:rebuild" || true echo "" echo "=== $(date): Migratsioon valmis ===" echo "Kontroll:" echo " docker exec mariadb mariadb -u root -pai_root_pass_2026 -N -e \\" echo " 'SELECT COUNT(*) FROM dr_mustikas11.node_field_data;'" echo " (peaks olema 8277)" echo " https://ohmu.tail20e23.ts.net:8010/"