To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Konwersje, przenoszenie, łączenie forów, integracje - Dołączenie odzyskanych postów do forum po jakimś czasie

tombog - 13-12-2016, 13:23
Temat postu: Dołączenie odzyskanych postów do forum po jakimś czasie
Witam. Problem wygląda następująco:

1. Padł serwer domowy z forum. Brak możliwości zgrania ostatnich baz.
2. Wykupiłem serwer w home.pl i z jakiegoś starego backupu odbudowałem forum.
3. Forum sobie żyło na home.pl przez 1,5 roku. Przybyło postów, userów, niektórzy musieli zarejestrować się ponownie (zmienione więc USER ID) itd.
4. Udało się w końcu dostać do danych na padniętym serwerze (macierz raid) i zgrać bazę z dnia awarii.
5. Postawiłem domowy serwer w celu uruchomienia forum z tą odzyskaną bazą.
6. z poziomu phpMyAdmin wyeksportowałem pojedyncze, osobne tabele. Zapewne nie wszystkie trzeba podmienić na aktualnym forum
7. Przekonwertowałem w editplus tabele na utf-8

Teraz założenia:

Czy da się w jakiś cywilizowany sposób połączyć zawartość odzyskanych baz z nowo powstałymi wpisami na działającym aktualnie forum? Czyli chciałbym dodać nowe wpisy do tych starych baz ale nie wiem jak to zrobić. ID tematów, postów i użytkowników, którzy je napisali rozjadą się zapewne. Zależy mi głównie na dodaniu do odzyskanych baz postów powstałych w międzyczasie na forum. użytkowników jest stosunkowo mało i powiedzmy, że dało by się ich poprawić ręcznie.

Macie jakieś pomysły, doświadczenia w tym temacie? Na jakie zależności w tabelach powinienem zwrócić uwagę by je odpowiednio "pokrosować"? W jakich tabelach muszę grzebać by to uporządkować?

Dodam, że szukałem już na forum rozwiązania, ale dokładnie takiego problemu nie znalazłem.

Woytec - 13-12-2016, 15:35

tombog napisał/a:
Na jakie zależności w tabelach powinienem zwrócić uwagę by je odpowiednio "pokrosować"? W jakich tabelach muszę grzebać by to uporządkować?

phpbb_topics, phpbb_posts, phpbb_posts_text.

tombog - 13-12-2016, 17:35

OK, więc doszedłem do tego, że zgodność w bazach aktualnej i odzyskanej kolumny post_id w phpbb_posts kończy się na numerze 37544. Kolejne post_id są już rozjechane. W tabeli odzyskanej są właściwe posty stare po d tymi id a w aktualnej tabeli pod tymi samymi numerami są już posty z nowego forum.

Można teoretycznie skopiować nowe posty z aktualnej tabeli na koniec tabeli odzyskanej, np w editplus. Pozostaje tylko jak nadać nowe id kilku tysiącom postów z aktualnej tabeli w sposób cywilizowany, najlepiej automatyczny. Macie jakiś patent? Może w phpmyadmin jest jakiś sposób poleceniem odpowiednim, np:
w tabli phpbb_posts, w kolumnie post_id podnieś wartość o 17357 ? Nie znam dobrze składni.. Może by mi ktoś podpowiedział czy tak się da i jakiej składni zapytania użyć?

Oczywiście potem czeka mnie to samo w post_text :)

Woytec - 13-12-2016, 19:33

Można by skryptem zwiększać o zadaną ilość.
tombog - 13-12-2016, 20:05

Myślę, że wystarczy proste zapytanie do bazy typu UPGRADE, tylko czy ktoś byłby w stanie zaproponować składnię ?

[ Dodano: 14-12-2016, 21:03 ]
OK, poradziłem sobie sam z problemem. Mam jednak pytanie dotyczące sposobu nadawania post_id w tabeli phpbb_posts. Omyłkowo część wierszy przedefiniowałem na wartość o 1000000 większą. Miałem to zrobić na tabeli roboczej a wykonałem na używanej. Dzięki temu z forum zniknęły wszystkie posty. Kiedy zauważyłem swój błąd zmieniłem ponownie wartość post_id na poprzednie. Wszystko wróciło do normy.
Problem jednak polega na tym, że wieczorem siadając znowu do pracy nad tabelami zauważyłem, że nowe posty dostają już numerację id większą o ten milion. Gdzieś musi być zaszyta informacja o ostatnim id posta? Jak sprawić, by posty nymerowały się znowu po kolei od tej mniejszej wartości? Gdzie szukać winnego wpisu?

Woytec - 14-12-2016, 23:17

tombog napisał/a:
Problem jednak polega na tym, że wieczorem siadając znowu do pracy nad tabelami zauważyłem, że nowe posty dostają już numerację id większą o ten milion. Gdzieś musi być zaszyta informacja o ostatnim id posta? Jak sprawić, by posty nymerowały się znowu po kolei od tej mniejszej wartości? Gdzie szukać winnego wpisu?
W opcjach tabeli poszukaj AUTO_INCREMENT. Ustaw na większy niż najwyższy ID.


Powered by phpBB modified by Przemo © 2003 phpBB Group