phpbb-tietokannan siivoaminen "väkisin"
Lähetetty: 30 Elo 2006, 17:24
Eli: Kysymys koskee phpBB-foorumin siivoamista, mutta on MySQL-spesifi.
Ne, jotka tuntevat phpBB:n tarkempaa sielunelämää teitävät, että viestit kirjoitetaan (tyhmästi) kahteen tauluun, joista toisessa otasketiedot ja lähettäjän tiedot (phpbb_posts) ja toiseen itse viesti (phpbb_posts_text.)
Kun käyttäjä syystä tai toisesta poistetaan, phpBB jättää viestit näkyviin (vieraskäyttäjänä). Minun tapauksessani se ei oikeastaan ole suotavaa, vaan viestit pitäisi saada pois.
Viestien poisto näkösältä on helppoa. Komentaa vaan tietokantaan:
DELETE FROM `phpbb_posts` WHERE `poster_id` = -1;
DELETE FROM `phpbb_topics` WHERE `topic_poster` = -1;
Edellinen poistaa viestit, joiden kirjoittaja on anonyymi. (Vaadimme rekisteröitymistä.)
Jälkimmäinen poistaa kokonaiset viestiketjut, joiden aloittaja on anonyymi.
Mutte tuo poistaa vain otsikot, ja siten piilottaa viesti. Viestirunkoa tuolla ei saada pois. Miten sen teen? Ja onko tähän tapeeseen modia?
Sain nyysseissä tälläisen komennon, jonka piti toimia:
DELETE FROM `phpbb_posts_text` WHERE `post_id` IN (SELECT `post_id` FROM `phpbb_posts` WHERE `poster_id`= -1);
Spesifiseti tuo on ok, eli tietokanta ei huuda virheestäkään. Mutta toisaalta ei saa riviäkään kannasta pois.
Samanlainen siivouskomento tietenkin myös viesteille, jotka kuuluivat noihin ylempänä olleille poistetuille viestiketjuille. Ja varmaan myös hakutietokantaan on kertynyt poistettavaa..
Ne, jotka tuntevat phpBB:n tarkempaa sielunelämää teitävät, että viestit kirjoitetaan (tyhmästi) kahteen tauluun, joista toisessa otasketiedot ja lähettäjän tiedot (phpbb_posts) ja toiseen itse viesti (phpbb_posts_text.)
Kun käyttäjä syystä tai toisesta poistetaan, phpBB jättää viestit näkyviin (vieraskäyttäjänä). Minun tapauksessani se ei oikeastaan ole suotavaa, vaan viestit pitäisi saada pois.
Viestien poisto näkösältä on helppoa. Komentaa vaan tietokantaan:
DELETE FROM `phpbb_posts` WHERE `poster_id` = -1;
DELETE FROM `phpbb_topics` WHERE `topic_poster` = -1;
Edellinen poistaa viestit, joiden kirjoittaja on anonyymi. (Vaadimme rekisteröitymistä.)
Jälkimmäinen poistaa kokonaiset viestiketjut, joiden aloittaja on anonyymi.
Mutte tuo poistaa vain otsikot, ja siten piilottaa viesti. Viestirunkoa tuolla ei saada pois. Miten sen teen? Ja onko tähän tapeeseen modia?
Sain nyysseissä tälläisen komennon, jonka piti toimia:
DELETE FROM `phpbb_posts_text` WHERE `post_id` IN (SELECT `post_id` FROM `phpbb_posts` WHERE `poster_id`= -1);
Spesifiseti tuo on ok, eli tietokanta ei huuda virheestäkään. Mutta toisaalta ei saa riviäkään kannasta pois.
Samanlainen siivouskomento tietenkin myös viesteille, jotka kuuluivat noihin ylempänä olleille poistetuille viestiketjuille. Ja varmaan myös hakutietokantaan on kertynyt poistettavaa..