Poznati problemi pri nadogradnji sa Drupala 6 ili 7 na Drupal 8
Drupal 6 do 8
Kategorije agregatora
U Drupalu 8 više ne postoji koncept kategorija agregatora, zbog čega one nisu prenete u Drupal 8.
Dozvoljeni protokoli
Drupal 8 sada čuva protokole u parametru kontejnera „filter_protocols“, pa ako ste menjali promenljivu „filter_allowed_protocols“, unesite to u fajl services.yml.
Dozvoljeni taksonomijski rečnici za polje reference termina
U Drupalu 6, lista primenjivih tipova sadržaja za određeni rečnik definisana je u podešavanjima rečnika. U Drupalu 8 dozvoljeni rečnici mogu se definisati u podešavanjima polja reference termina taksonomije. Ova opcija trenutno nije migrirana, što znači da je moguće referencirati sve rečnike u Drupalu 8. Možete ručno izmeniti podešavanja polja reference termina taksonomije u Drupalu 8 nakon nadogradnje i izabrati dozvoljene rečnike.
[Ispravljeno] Formati datuma
Prevoze se samo podrazumevani formati — kratki, srednji i dugi. Svi ostali podrazumevani formati imaju rezervni format i treba ih ponovo podesiti nakon migracije.
Polja koja nedostaju u formi za uređivanje ili na stranici pregleda
Još jedna stvar koja može zbuniti je kada pokrenete migraciju koja deluje uspešno, ali zatim ne vidite svoja polja u formi za uređivanje. Idite na stranicu za administraciju tipova sadržaja i otvorite karticu „Upravljanje prikazom forme“ za svaki tip sadržaja. Polja dodata migracijom mogu biti skrivena u formi za uređivanje. Ako je tako, prevucite ih gore da bi bila vidljiva. Isto važi i za prikaz čvora — polja mogu biti skrivena na kartici „Upravljanje prikazom“ i treba ih učiniti vidljivim. Za migraciju prilagođenih polja može pomoći modul Migrate Plus.
Početna stranica se učitava, tema ne radi
Tokom migracije ponekad stranica ostane bela i učitava samo nekoliko elemenata, što je u suštini kao pokvarena tema. Poseta /user stranici i vraćanje na početnu obično rešava problem.
Menu UI
Promenljive menu_primary_links_source i menu_secondary_links_source se ne migriraju jer nemaju ekvivalent u Drupalu 8.
Moduli i teme
Pre nego što započnete migraciju, potrebno je da uključite nove module i teme, kao i da podesite administratorsku temu (ako postoji).
Tipovi sadržaja čvora
Podrazumevana konfiguracija u Drupalu 6 sadrži tipove sadržaja Story i Page. Podrazumevani tipovi sadržaja u Drupalu 8 zovu se Article i Basic Page (koji ima mašinsko ime 'page', kao u Drupalu 6).
- Migracija mapira Drupal 6 tip sadržaja Page na Drupal 8 tip Page jer se mašinska imena poklapaju.
- Migracija kreira tip sadržaja Story za Drupal 8. Možda ćete želeti da obrišete Drupal 8 tip Article ako vam nije potreban. Za detaljnije informacije pogledajte
#2236289: Migracija 'story' čvorova iz D6 kreira novi tip sadržaja u D8.
Prevod čvorova
U Drupalu 6 i 7 prevodi čvorova su se čuvali kao zasebni čvorovi, dok su u Drupalu 8 sada objedinjeni sa svojim originalnim čvorovima. Sistem migracije će spojiti prevode čvorova, ali to može značiti da neke veze sada upućuju na čvorove koji više ne postoje. Pogledajte #2746527: [META] Bolje rukovanje podacima vezanim za prevode čvorova u Drupal 6 i 7 za više informacija.
Napomena: revizije prevedenih čvorova još nisu migrirane. Pogledajte #2746541: [backport] Migracija revizija D6 i D7 čvorova u D8.
Pregled nadogradnje višejezičnog Drupala 6 na Drupal 8.
Kategorije profila
Polja grupisana modulom profila u Drupalu 6 neće biti grupisana u Drupalu 8.
Polje profila (izbor liste)
Podešavanje „dozvoljenih vrednosti“ za polje u Drupalu 8 predstavljaće kombinaciju svih izabranih vrednosti iz Drupala 6 i trenutnih dozvoljenih vrednosti, a ne samo dozvoljenih vrednosti iz Drupala 6.
Statistika
Podešavanja pristupnih zapisa i statistike nisu i18n migrirana. Konsolidacija i18n statistika je migrirana od Drupal 8.5.2. Pogledajte #2930101: i18n/statistics - brojač čvorova se ne ažurira za prevode.
Tekst / formati unosa
Filter formati koji nisu prepoznati u Drupalu 8 biće migrirani kao filter_null, koji samo vraća praznu vrednost. To znači da bilo koji format unosa koji koristi nepoznati filter neće prikazivati sadržaj polja iako je sadržaj prisutan u bazi. Ovo može biti zbunjujuće. Pogledajte #2618332: Bolje rukovanje zamenskim filterima za nestale filtere sa filter_null i #2630578: Duplirani formati u D6 nadogradnji.
Neprepoznati filteri uključuju poznati PHP filter koda i bilo koji drugi filter koji pruža contrib modul koji nije instaliran u Drupalu 8.
PHP filter nije podržan u jezgru Drupala 8 — što je vrlo loša praksa, ali možete koristiti PHP modul ako vam je neophodan.
Da biste rešili ovaj problem, imate nekoliko opcija:
- Proverite da li moduli koji pružaju filtere imaju Drupal 8 verziju i instalirajte ih.
- Izmenite i sačuvajte pogođene formate unosa. Ovo će ukloniti referencu na filter_null i sadržaj će početi da se prikazuje. Imajte na umu da, pošto izvorni filter ne postoji, sadržaj neće biti filtriran i mogu se prikazati neobrađeni tokeni ili čak postojati bezbednosni rizici.
- Izmenite sadržaj i promenite na drugi format unosa. Ovo nosi iste probleme kao i prethodni korak.
Vremenske zone i datumi
Drupal 6 koristi pomeraj vremenske zone za računanje lokalnog vremena. Drupal 7 i 8 koriste ime vremenske zone. Nažalost, PHP funkcija timezone_name_from_abbr(), koja prevodi pomeraj u ime vremenske zone, može da generiše različita imena u zavisnosti od toga da li je letnje računanje vremena uključeno na serveru. Na primer, pomeraj od 3600 može biti preveden u Europe/Paris ako je letnje vreme isključeno, ili Europe/London ako je uključeno. Migracija ignoriše letnje vreme. U zavisnosti od konfiguracije servera, podešavanje vremenske zone u Drupalu 8 može biti netačno nakon migracije (#2353679: nedostajuća D6->D8 migraciona promenljiva date_default_timezone).
U vremenskim zonama sa letnjim računanjem, datum može biti interpretiran drugačije u Drupalu 8 nego u Drupalu 6. Na primer, ako je vreme oko ponoći, datum može biti drugi dan. Ovo može uzrokovati probleme, naročito ako se datumski tokeni koriste za kreiranje putanja (kao URL aliasi ili putanje fajlova). Dva moguća rešenja su opisana u #2926421: Rukovanje neusaglašenostima datuma između D6 i D8.
URL aliasi
Kada se migriraju URL aliasi za jezik koji nije omogućen na novom Drupal 8 sajtu, nijedan alias neće raditi dok se jezik ne uključi na novom sajtu.
Views
Views još nisu migrirani, moraćete ručno kreirati Views u Drupalu 8. Za više informacija pogledajte #2500547: Put migracije Views iz Drupala 6 i 7 i modul Views Migration.
Podešavanja bloka korisničke aktivnosti
Podešavanja korisničke aktivnosti se ne migriraju. Potrebno ih je ručno podesiti u odgovarajućem prikazu u sekciji filteri/pristup (#2169327: Migrirati podešavanja bloka korisničke aktivnosti).
Drupal 7 do 8
[Ispravljeno] Dozvoljeni taksonomijski rečnici
U Drupalu 7 dozvoljeni rečnik za polje reference termina taksonomije je definisan u podešavanjima tog polja. Ova opcija trenutno nije migrirana, što znači da se u Drupalu 8 može referencirati na sve rečnike. (pogledajte #2763637: Polja termina taksonomije D7 se ne migriraju sa dozvoljenim rečnicima). Nakon nadogradnje, možete ručno urediti podešavanja polja reference termina i izabrati dozvoljene rečnike.
Blokirani IP adrese
Kolona id iz tabele ban_ip u Drupalu 7 se ne migrira.
Tipovi komentara
Drupal 7 dozvoljava da komentari imaju različita polja za različite tipove sadržaja. Obično komentari imaju polja Autor, Naslov i Komentar. Pošto komentari iz D7 mogu imati različita polja, pri migraciji će se kreirati posebni tipovi komentara u D8 za svaki tip sadržaja:
- Tip sadržaja Foo ima komentar tip comment_node_foo
- Tip sadržaja Bar ima komentar tip comment_node_bar
Jedino izuzeće su komentari na forumu. Kada je uključen D8 modul Forum, automatski se kreira tip komentara comment_forum. Komentari sa foruma iz D7 se migriraju u ovaj tip komentara.
Važna napomena: standardni instalacioni profil Drupala 8 i tip sadržaja Article
Ako je vaš Drupal 8 sajt instaliran korišćenjem standardnog instalacionog profila, imaćete tip sadržaja pod nazivom Article.
- Ovaj tip sadrži polje komentara pod imenom comment.
- Sistem migracije ne može pretpostaviti da je sajt D8 instaliran sa standardnim profilom, zato će biti kreiran tip komentara comment_node_article, a komentari za D7 tip sadržaja Article će biti migrirani u ovaj tip.
Kao rezultat, vaš Article tip sadržaja sada ima dva polja komentara:
- comment, koji je iz standardnog instalacionog profila i nije korišćen
- comment_node_article, kreiran migracijom
Verovatno ne želite dva komentarska polja za tip Article, pa treba ručno da uklonite polje comment sa Article (admin/structure/types/manage/article/fields). Nakon toga, možete i ukloniti tip komentara comment (admin/structure/comment) ako ga nigde ne koristite.
Preporučuje se da uklonite nepotrebno polje komentara iz Article pre pokretanja migracija jer Drupal 8 jezgro trenutno ima grešku vezanu za uklanjanje polja komentara; pogledajte #2906470: Izgubljeni komentari i zapisi u comment_entity_statistics nakon uklanjanja polja komentara.
PHP kod
Filter formati koji nisu prepoznati u Drupalu 8 biće migrirani kao filter_null, koji vraća praznu vrednost, što znači da format unosa koji koristi nepoznati filter neće prikazivati sadržaj iako je sadržaj u bazi.
Neprepoznati filteri uključuju poznati PHP filter koda i bilo koji drugi filter koji pruža contrib modul koji nije instaliran u Drupalu 8.
PHP filter nije podržan u jezgru Drupala 8 — što je loša praksa, ali možete koristiti PHP modul ako je neophodan.
Za rešavanje problema imate opcije:
- Proverite da li moduli koji pružaju filtere imaju Drupal 8 verziju i instalirajte ih
- Izmenite i sačuvajte pogođene formate unosa da uklonite referencu na filter_null i da sadržaj počne da se prikazuje (pažnja: sadržaj neće biti filtriran i može biti bezbednosno rizičan)
- Izmenite sadržaj i promenite format unosa na drugi
Polja običnog teksta
Nepodudarnosti u podešavanjima obrade teksta u Drupalu 7
U Drupalu 7 podešavanja obrade teksta su definisana na nivou instance polja. Jedno polje može biti korišćeno za dva ili više tipova sadržaja, sa različitim podešavanjima (npr. „Običan tekst“ za jedan, „Filterovani tekst“ za drugi).
Drupal 8 ima odvojene tipove skladišta za Text (Plain) i Text (Filtered), kao i njihove duge varijante. Ovo se bira na nivou skladišta polja, i ne može se menjati po tipu sadržaja.
Sistem migracije ne pravi pretpostavke. Ako se otkriju konflikti u podešavanjima obrade teksta, ta polja se preskaču sa porukom u dnevniku. Postoje dve opcije za dizajnere sajta:
1. Ujednačite podešavanja obrade teksta na Drupalu 7, tako da sva polja koriste iste postavke.
- Vodite računa da ne uvedete sigurnosne propuste (npr. XSS) pri odabiru podešavanja.
- Ako je polje bilo „Plain text“ i nepoverljivi korisnici su mogli unositi sadržaj, može sadržati zlonamerni kod koji nije izvršen u D7. Ako sada promenite polje na „Filtered text“, proverite da li filter dozvoljava zlonamerni unos.
2. Ako vam treba različita podešavanja formata u Drupalu 8, razvijte sopstvenu migraciju koja deli polja na dva zasebna polja u D8. Više o tome pročitajte u Podešavanju migracija pri nadogradnji na Drupal 8.
Tekst sa rezimeom + podešavanje formata običnog teksta u Drupalu 7
Drupal 7 ima tip polja Long text and summary. Odgovarajući tip u D8 je Text (Filtered, Long, with summary). U D7 može se podesiti da tekst bude običan. Text (Filtered, Long, with summary) je u D8 uvek formatirani tekst.
Sistem migracije ne pravi pretpostavke. Ako se otkrije Long text with summary sa podešavanjima običnog teksta, polje se preskače sa porukom u dnevniku. Opcije su iste kao gore.
Statistika
Podešavanja pristupnih zapisa i statistike nisu i18n migrirana. Konsolidacija i18n statistika migrirana je od Drupal 8.5.2. Pogledajte #2930101: i18n/statistics - brojač čvorova se ne ažurira za prevode.
Views
Views još nisu migrirani; moraćete ih ručno napraviti u Drupalu 8. Za više informacija pogledajte #2500547: Put migracije Views iz D6 i D7 i modul Views Migration.
Mogući konflikti ID (od D6 ili D7 do D8)
Problem
Kao što je opisano na stranici priprema za nadogradnju, Drupal 8 sajt mora biti potpuno prazan prilikom nadogradnje. Proces migracije čuva identifikatore sa izvornog sajta. Ako je sadržaj već kreiran na Drupal 8 sajtu pre nadogradnje (npr. čvor sa nid 1), identifikatori mogu biti u konfliktu.
Rad na automatskom otkrivanju konflikata i upozoravanju korisnika je u toku (pogledajte #2876085: Provera potencijalnih konflikata ID pre nadogradnje). Trenutno administratori moraju sami pažljivo proveriti konflikte. Ako se konflikti ne rešavaju pažljivo, sadržaj ili entiteti poput taksonomijskih termina i fajlova mogu biti prebrisani, što dovodi do gubitka podataka. Takođe je moguće da reference budu oštećene (npr. sadržaj povezan sa pogrešnim terminom).
Slučajevi koji mogu izazvati konflikte ID
- Drupal 8 ciljna instalacija je već korišćena i postoji sadržaj.
- Prvobitna migracija je završena. Nakon toga su kreirani novi entiteti na oba sajta, što može dovesti do konflikta.
- Čist Drupal 8 sajt je dodat modulima koji kreiraju sopstvene podatke (npr. Forum modul kreira taksonomijski termin sa ID #1). Ako izvorni sajt ima termin sa istim ID, može prebrisati postojeći.
- Izvor može imati podatke bez ID, ali Drupal 8 ciljni sajt zahteva ID. Na primer, prilagođene slike u D6 nisu imale ID, dok D8 zahteva. Migracija kreira upravljane fajlove sa ID koji mogu biti u konfliktu.
- Mogući konflikti ID sa prevodima nisu automatski detektovani.
— Ako radite punu nadogradnju na čist Drupal 8 sajt, sve je u redu.
— Ako radite delimičnu migraciju i dodate prevode na D8 pre nego što prebacite sadržaj, migracija može prebrisati prevode.
Rešenja
Prilagođena migracija za konfliktnu stavku
Moguće je podesiti migraciju tako da se za konfliktne stavke generišu novi ID-jevi. Ovo može uticati na URL i javne putanje. Obratite posebnu pažnju na ispravljanje svih linkova ka izmenjenim entitetima.
Manipulacija AUTO_INCREMENT vrednostima
Kada ciljni sajt nema konfliktne podatke, ali migracija može uzrokovati konflikte, moguće je podesiti AUTO_INCREMENT vrednosti u bazama kako bi kreirani entiteti imali ID-jeve izvan opsega prenetih entiteta. Primer je migracija prilagođenih slika.
Prihvatanje potencijalnog prepisivanja podataka
Migraciju je moguće nastaviti, ali ovo nije poželjno jer može dovesti do gubitka podataka.
Nadogradnja višejezičnih sajtova (od D6 ili D7 do D8)
Za sve višejezične migracije sa Drupal 6 i 7 (i18n moduli) i Drupal 7 entitetsku migraciju potrebno je da u Drupal 8 bude uključen modul Migrate Drupal Multilingual (migrate_drupal_multilingual).
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.