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 - Odzyskanie skasowanego tematu z backupu bazy

ziomwnecie - 03-03-2011, 15:27
Temat postu: Odzyskanie skasowanego tematu z backupu bazy
Witam,

jestem nowy wiec z gory przepraszam ze wszelkie bledy.

Sprawa wyglada tak ze moderator skasowal jeden z tematow.
Posiadam dump bazy danych (sprzed skasowania).

Pytanie jak wyciagnac z bazy(backupu) caly temat wraz z postami i wrzucic go (przywrocic) do aktualnie dzialajacej bazy.

Przywrocenie calej bazy odpada, bo forum zyje a minelo juz troche czasu.

Bede wdzieczny za odpowiedz.

maminowiec - 03-03-2011, 16:37

Otwierasz baze i wyszukujesz tabele phpbb_topics ,
szukasz skasowanego tematu , jak znajdziesz kopiujesz tą linijkę gdzieś w bezpieczne miejsce oraz zapisujesz id tematu (topic_id)

Następnie wchodzisz w tabele phpbb_posts , wyszukujesz dany post gdzie topic_id jest równe id temat , to co zapisałeś wyżej. Zaznaczasz i zapisujesz , robisz to tyle razy ile było postów. Zapisujesz id postu (post_id)

Następnie tabela phpbb_posts_text , wyszukujesz id postu (post_id) i wykonujesz to co wyżej.

Ostatnio etap to przejście do phpmyadmin i wklejenie tych zapisanych zapytań.

Wiem , ze jako początkujący możesz nie zrozumieć ale starałem sie jak mogłem.

ziomwnecie - 03-03-2011, 22:11

Wielkie dzieki, doceniam starania i zetelna odpowiedz

rozumiem doskonale o czym mowisz, nawet sam wczesniej do tego doszedlem, ja mam obie bazy w phpmyadmin, dostep do konsoli i tak dalej wiec moge sobie dowolnie operowac.

Tylko ze ja tych wpisow mam od groma, reczne kopiowanie odpada,

moje wnioski sa takie:
tabela:
1. phpbb_topics - jeden wpis
2. phpbb_posts - wpisy wyszukane po polu "topic_id" (tu jeszcze automat)
3. phpbb_posts_text - tu brak automatu, posty nie maja zadnego pola o tych samych wartosciach

Jedyne co zostaje to napisac skrypt (moze php) ktory dla kazdego z rekordow z drugiego kroku wezmie post_id a nastepnie wyszuka pasujacego do niego rekordu z post_text, a wyniki dopisywac do pliku.

chyba dobrze kombinuje?
A moze jest juz gdzies taki skrypt?
ktos takei cos robil?

Woytec - 04-03-2011, 15:18

ziomwnecie napisał/a:
Jedyne co zostaje to napisac skrypt (moze php) ktory dla kazdego z rekordow z drugiego kroku wezmie post_id a nastepnie wyszuka pasujacego do niego rekordu z post_text, a wyniki dopisywac do pliku.

chyba dobrze kombinuje?

Tak, to dobry pomysł, można takie coś zrobić.

Bucu - 04-03-2011, 15:29

Najprostsze to:

Kod:
SELECT * FROM phpbb_topics WHERE topic_id = ID LIMIT 1;

wyciagasz, eksportujesz i wklejasz sobie do notepada na przyklad.

Kod:
SELECT * FROM phpbb_posts WHERE topic_id = ID

jak wyzej, tez sobie zapisujesz

Kod:
SELECT post_id FROM phpbb_posts WHERE topic_id = ID

Eksportujesz sobie id, potem umiejetnie operujac znajdz i zamien mozna okroic wynik do formatu liczb oddzielonych przecinkami.

Kod:
SELECT * FROM phpbb_posts_text WHERE post_id IN (X)

Zamiast x id postow oddzielone przecinkami. Wynik eksportujesz, zapytania do notatnika.

A potem wszystkie te zapytania na bazie wykonujesz.
Moglem sie gdzies w skladni pomylic - pisane "z palca", bo locala akurat pod reka nie mam.

ziomwnecie - 06-03-2011, 22:24

Udalo mi sie, przywrocilem 209 stron ze wpisami.
napisalem skrypt w php ktory robi z automatu wszystko, podaje sie jedynie topic_id oraz plik do zapisu.

Jedyne co musialem poprawic to jak w phpbb_posts_text w teksie bylo ' <- o to ktos wpisal w poscie, to przy imporcie sie wywalal (sql ' to traktuje jako kolejne pole).
wogole jedyne czego brakuje temu skryptowi to zamiana enterow i nowych lini na odpowierdnio /n/r oraz wlasnie tych ' na podwojnie wpisane: '' I wtedy jest ok, dopisze to moze kiedys a moze wy dopiszcie bo nie pamietalem jak to zrobic (trzeba bylo dawac podwojne // i po przez funkcje str_replace() - jakos tak).

jak tu na forum wkleic skrypt?? jako plik czy jako kod w poscei sie da??

acha i poniewaz ja dumpa bazy mialem na innym serwerze i bylo inne kodawanie mysqla no i znaczki zamiast polskich wychodzily krzaczki to na koniec uzylem polecenia "iconv" w kosoli linucha dla pliku wynikowego skryptu.

[ Dodano: 06-03-2011, 22:26 ]
wklejam skrypt w zalaczniku.

Woytec - 07-03-2011, 15:03

Przed znakami:
Kod:
"tekst" 'tekst'

Dajesz ukośniki: \ aby nie były te znaki traktowane jako składnia<hr />
ziomwnecie napisał/a:
/n/r

Kod:
\n\r

ziomwnecie - 08-03-2011, 09:47

Ok, dzięki wszystkim za pomoc, skrypt w razie czego dla pokoleń jest w załączniku. Nie poprawiłem tych znaków: ' \n \r i tak dalej, ale jak ktoś w temacie to sobie da radę.
Xeonn - 20-12-2011, 12:49

ziomwnecie napisał/a:
[ Dodano: 06-03-2011, 22:26 ]
wklejam skrypt w zalaczniku.


witam, odświeżę temat , potrzebuję tego skryptu, lecz został usunięty. Czy ktoś może takowy posiada?

Moim problemem jest to, że któryś a z modów przeniósł temat, potem admin wywalił całą kategorię wraz z tematami i postami.
Niestety udało mi się przywrócić kategorię, w temacie forum widnieje :
temat , ilośc postów i ilość tematów, nie ma ostatniego postu, ręcznie w phpmyadmin przeniosłem tylko dwa :) a tam jest 807 postów i 57 tematów :)
pomoże ktoś ? :)
pozdrawiam

Woytec - 20-12-2011, 16:45

Xeonn napisał/a:
ręcznie w phpmyadmin przeniosłem tylko dwa
Czyli chodzi ci o przeniesienie do innego działu czy odzyskanie usuniętych tematów?
Xeonn - 20-12-2011, 17:00

Woytec napisał/a:
Czyli chodzi ci o przeniesienie do innego działu czy odzyskanie usuniętych tematów?

odzyskanie.
może nie jasno się wyraziłem w pierwszysm moim poście tutaj.
Mam backup bazy w której jest forum o ID (18)
wyexportowałem je i zaimportowałem do obecnej bazy i je widać.
następnie z backupu wyexportowałem tematy które odnosiły się do forum o ID (18)
zaimportowałem do obecnej bazy, w wynikach importu pokazało , że wykonano taką ilośc jak powinna być.
natomiast na forum pojawiają się tylko 2 tematy, w bazie jest ich 57 ??? wykonałem synchronizację itd , nic nie dało.
Pogubiłem się juz w tym i szukam pomocy :)

---------
czy związek ma tutaj również ID postow? bo od tamtego czasu chyba nowe wpisy powstały na miejscu tych z usunietego forum? chodzi o ID postów.

Woytec - 20-12-2011, 18:30

phpbb_posts_text, phpbb_posts i phpbb_topics?
Xeonn - 20-12-2011, 18:35

Cytat:
phpbb_posts_text, phpbb_posts i phpbb_topics?


tak, z tym mam problem.
i teraz nie wiem, czy musze pojedynczo dodawać, zmieniając kazdorazowo id na wolne? bo gdy exportuję z backupu, to importuje do obecnej z błedem i zatrzymuje sie bo ID istnieje :/

Fan11 - 06-11-2013, 14:14

czy ktoś posiada taki skrypt jeszcze ?

------------------------------
Zrobiłem jak wyżej zapytania i następnie do prawidłowej bazy lecz tego tematu nie widać nigdzie :( jak sprawdzić co źle zrobione jest ??

Woytec - 12-11-2013, 15:55

Zobacz czy istnieje w phpbb_topics i czy jest przypisany do właściwego forum.


Powered by phpBB modified by Przemo © 2003 phpBB Group