Cześć!
Migracja
Drupal WordPress
2.0 3.0
14 letni vortalu z branży muzycznej
Do migracji ponad 25.000 kont użytkowników,
którzy na przestrzeni dekady stworzyli
ponad 500.000 różnego rodzaju tekstów z
10GB załączników
Drupal 6 PressFlow (28 typów treści, moduł CCK oraz pluginy)
8x 3,4 GHz Xeon + 32GB RAM + Raid 5 z SSD
Dlaczego migracja?
BB -> Drupal 5 -> Drupal 6 ->Press Flow
Przestarzała
taksonomia
Utrzymanie strony
Ogranicza
użytkowników
Web 2.0
SPAM
2
Facebook
Twitter
Pinterest
Możliwość rozwoju: Personalizacja + APP
Microblog
Wall / Stream
Groups
Like / Pin
Share / Retweet
Comment
Profile
Frending
Notifications
…
Przed migracją
Server Headers
HSTS
CSP
CRC
Proxy cache (cache przeglądarek)
DNS
TTL
proxy (CloudFlare)
Google Flush Cache
subdomeny
CNAME np. Google
inne
AppCache
Pixel remarketingowy
Listy IP spamerów
SiteMap
HeidiSQL
ssh
Środowisko
Stary Nowy
Jeśli nie ma funduszy
na dwa równoległe
wirtualizuj.
Stary potem przejmie 301
Obecny Load
Wąskie gardła
NIE kopiuj na Windows
Drupal do WordPress
MySQL
MySQL
Możliwości
My potrzebujemy
Oczyścić treść z [BB], js, html, wulgaryzmów
IP proxy, IP TOR, IP spamerów, słownictwo,
wg: maila, ilości postów, tekst/linków, domeny
Nowe typy, taksonomia = nowe URI - pod 301
Filtry
On Line
Treści
SPAM
Zmieścić się w „okienku”
Ilość wpisów,
Taksonomia, CP, id
Angażuje 2 silniki PHP
pełna kontrola, id
MySQL
Szybkie
Tracimy kontrolę, sync
Możliwości
Dlatego wybraliśmy
MySQL PHP WordPress
Ciężka obróbka w MySQL Import przez funkcje WP
CMS do CMS
MySQL
CREATE TABLE `tresci` ( SELECT `kolumny` FROM `node` LEFT JOIN
`node_revisions` … ON `node`.`nid` = `node_revisions`.`nid` ) ;
UPDATE `tabela` SET `kolumna1` = REPLACE ( `gdzieszuka`, ‘co’,
‘naco’) WHERE `kolumna2` LIKE '%szukana%';
TRIM() CHAR_LENGHT() LOWER()
MySQL
workbench
Nid Node
Cid Comments
Uid Users
Fid Files
Tid Taxonomy
… …
MySQL
różnice są tylko w formie przechowywania
Nid Node_* -> Posty +meta
Cid Comments_*-> Komentarze
Uid Users_* -> Użytkownicy
Fid Files_* -> Załączniki
Tid Taxonomy_*-> Kategorie / Tagi
… …
users_*
user_*
*_user
*_users
WordPress
CODEX
DEBUG BAR
define('WP_DEBUG', true);
wp-config.php
include(wp-blog-header.php)
$nowy_ID =
wp_insert_post( $post, $e);
$post = array( FORM )
$nowy_ID przyda się do
- załączniki
- komentarze
- 301
$form = array(
'user_login' => 'login_name',
'user_url' => $website,
'user_pass' => NULL
//wp_generate_password();
);
$user_id = wp_insert_user( $form ) ;
if( !is_wp_error($user_id) ) {
Zapisz nowe ID : $user_id;
Wyślij maila z hasłem
}
Wyjątkiem jest
BuddyPress
Avatary trzeba przekopiować do
/wp-content/uploads/avatars/ID-użytkownika/dowolna-nazwa-bpthumb.jpg
/wp-content/uploads/avatars/ID-użytkownika/dowolna-nazwa-bpfull.jpg
PHP
copy(‘skąd_kopiować/x.jpg', ‘nowa-lokalizacja/i-nazwa-bpfull.jpg');
Przygotuj się na
https://en.wikipedia.org/wiki/Early_adopter
20
20
60
20%
Innowatorzy
Early Adopters
20%
Przeciwnicy zmian
60%
Obserwatorzy
Punkt krytyczny
Przygotowania Migracja
BETA
Publikacja Nauka
Edukowanie
Ulepszanie
Strategia wdrażania zmian
prawa Murphiego
Listy ReMarketingowe
HSTS
DNS TTL
Komentarze
ReIndeksacja strony
Reindeksacja
Zablokuj np. Yandex, BING, SentiOne, …
Rozbij indeksację na etapy
Przekieruj ruch – 3 dni z Varnish?
Tylko kluczowe dla biznesu BOTY
Obciążenie serwera
HTML IMG Video
X-Robots-Tag
Osobny host na 301

Migracja z Drupal 6 PressFlow do WordPress 4