Kataloog: /opt/docker-compose/third/drupal/mustikas11/
Drupal 7 (mustikas.maastikuarhitekt.ee) → Drupal 11 migratsiooni testimiskeskkond
arendusserveril ohmu. Production (hetzner) jääb täiesti puutumata — migratsioon
loeb ainult ohmu-l olevat sünkroonitud dr_mustikas koopiat.
| Konteiner | Pilt | Port | URL |
|---|---|---|---|
| drupal_mustikas11 | drupal_mustikas11:latest (põhineb drupal:11) | 127.0.0.1:8010 → 80 | https://ohmu.tail20e23.ts.net:8010/ |
dr_mustikas11 (ohmu mariadb, utf8mb4_general_ci)dr_mustikas (ohmu mariadb)/var/lib/docker/volumes/drupal_mustikas-html/_data/sites/default/files → /d7-files (read-only)admin / AdminPass2026!, meil ardokubjas@gmail.com (VAJA VAHTADA tootmises)mail.odamus.com:587 (TLS, bounce@odamus.com) — e-kirjad töötavadsystem.site.mail = bounce@odamus.com (NB! peab ühtima SMTP auth kasutajaga, muidu SMTP server lükkab info@maastikuarhitekt.ee saatja tagasi)reverse_proxy = TRUE settings.php-s (Tailscale serve HTTPS jaoks)et (vaikimisi, nagu D7) + en. system.site.default_langcode = et.
NB! et-alias'd (/liikmed/tanel-breede) töötavad ilma prefiksita ainult siis,
kui default keel on et. Kui default oleks en, vajaksid nad /et/ prefiksit.Põhineb drupal:11 + paigaldatud:
drush/drushdrupal/migrate_plusdrupal/migrate_toolsdrupal/migrate_upgradedrupal/smtpdrupal/views_aggregatordrupal/views_data_exportEhitamine: docker compose build
| Path | Vaade | Sisend |
|---|---|---|
/liikmed, /liikmed/nimekiri |
liikmed |
emal_liige nimekiri (nimi, e-mail, isikukood) |
/projektid |
projektid |
projektide nimekiri |
/kanded/liikmemaksud |
kanded (kande_tyyp=6) |
kannete tabel |
/kanded/projektid |
kanded (kande_tyyp=8) |
kannete tabel |
/kanded/tegevuskulud |
kanded (kande_tyyp=29) |
kannete tabel |
/kanded/*/saldod |
kanded + views_aggregator SUM |
summeeritud saldod |
/kanded/koik-kanded |
kanded |
kõik kanded |
/synnipaevad, /liikmed/synnipaevad |
synnipaevad |
emal_liige nimekiri |
/docs |
dokumendid |
filedepot_folder nimekiri (täispika hierarhilise teega) |
/filedepot |
dokumendid (page_filedepot) |
sama nimekiri, täispika teega |
/liikmed/eksport |
liikmed data_export |
CSV (nimed, isikukoodid, e-mailid) |
/contact |
contact moodul | kontaktivorm (feedback) |
Custom moodul mustikas_export parandab views_data_export rea renderdamist
D11-s (fields row plugin tagastab #theme render array, mis ei serialiseeru CSV-ks).
Asub custom_modules/mustikas_export/ ja tuleb image'i sisse kopeerida.
# Täismigratsioon (ka lõppsünk):
sudo bash /opt/docker-compose/third/drupal/mustikas11/migrate_mustikas11.sh
Drush otse (NB! mälu limiit):
docker exec drupal_mustikas11 sh -c "cd /opt/drupal && php -d memory_limit=1024M /opt/drupal/vendor/drush/drush/drush.php <cmd>"
| Sisutüüp | D7 | D11 | Staatus |
|---|---|---|---|
| kanne | 7792 | 7792 | 100% ✓ |
| emal_liige | 153 | 153 | 100% ✓ |
| projekt | 174 | 174 | 100% ✓ |
| filedepot_folder | 141 | 141 | 100% ✓ |
| book | 9 | 9 | 100% ✓ |
| page | 5 | 5 | 100% ✓ |
| php | 3 | 3 | 100% ✓ |
| Kokku node | 8277 | 8277 | 100% ✓ |
| kasutajad | 153 | 153 | ✓ |
| taxonomy terminid | 108 | 108 | ✓ |
| failid | 2675 | 854 (public) | osaline (private jäi) |
| URL aliased | 11147 | ~11000 | ✓ |
Juurdekontroll on viidud D7-ga vastavusse:
access content (View published content).
Selle tulemusena:
/ (Avaleht, node/5) -> 403 "Ligipääs keelatud" + juhendtekst + sisselogimisplokk külgribal/liikmed, /projektid, /kanded/*, /docs, /filedepot, /synnipaevad, kõik /node/* -> 403/contact -> 200 (kõigile)/user/login, /user/password -> 200; /user/register -> 403 (admin_only)standard.front_page) peamenüüst
(hook_menu_links_discovered_alter mustikas_export moodulis).anonymous_front_instruction), nähtav ainult anonüümsele,
content regionis (D7 node/3 "Anonüümse kasutaja avalehe info" analogg).metro_user_login blokk piiratud ainult anonüümsele.tools_sidebar menüü peidetud anonüümsele.metro_block_4-7 (telefon, e-mail, lahtiolekuajad,
"Kirjuta meile" -> /contact) paigutatud footer_top regioni.Skriptid (kordustäitmiseks):
revoke_anon_access.php – eemaldab anonüümselt access contentadd_instruction_block.php – loob juhendteksti blokirestrict_login_block.php – metro_user_login anonüümselerestore_footer.php – footer blokid footer_toprestrict_tools_sidebar.php – tools_sidebar peidetud anonüümselefield_nimi, field_isikukood, field_emal_kasutaja_oigused,
field_sunnipaev) – D7 custom moodulitest (name, est_id_code_field,
rolereference, birthdays_date). Vajavad kohandatud migratsioonipluginaid.
Praegu loon neile lihtsustatud storaged (string/datetime) — andmed ei tule
automaatselt üle, aga emal_liige node'id ise migreeruvad.AdminPass2026!), SMTP on seadistatud, SSL on Tailscale serve kaudu.sudo bash /opt/docker-compose/third/drupal/mustikas/sync_from_hetzner.shsudo bash /opt/docker-compose/third/drupal/mustikas11/migrate_mustikas11.shfix_fields.php – loob puuduvad custom field storage'id (string/datetime)fix_fields2.php – loob datetime_range → daterange storage'idfix_er_sort.php – parandab entityreference sort puuduva võtme (source DB)fix_text_maxlength.php – tõstab liiga lühikese text välja max_length=255 (source DB)del_kirjeldus.php - kustutab field_kirjeldus config'i (vajadusel)migrate_filedepot.php – migreerib filedepot failid (file_managed + node__filedepot_folder_file)migrate_filedepot_hierarchy.php – loob field_folder_parent välja ja täidab D7 filedepot_categories.pid järgi kaustade hierarhiacustom_modules/mustikas_export/src/Plugin/views/field/FolderPath.php – Views väli "Kausta täispikk tee" (filedepot_folder_path)Need on ka /tmp/opencode/ kohalikus Dropboxis (kust sai scp).