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:
Dajesz ukośniki: \ aby nie były te znaki traktowane jako składnia<hr />
ziomwnecie napisał/a: | /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.
|
|
|