2009. febr. 14.

Címjegyzék visszaállítása a Roundcube Webmail-ben manuálisan

Az előző Roundcube-ról szóló postomban leírtam, hogyan tudjuk frissíteni a webmail-ünket. Sajnos egy csomó hiba generálódott, nem volt jó a karakterkódolás stb., ezért ma teljesen újratettem az egész kócerájt. Természetesen mindenről készítettem biztonsági mentést.

Jelen írás feltételezi, hogy rendelkezünk a régi adatbázisunkról biztonsági mentéssel!

A régi adatbázist elküldtem melegebb éghajlatra, és egy teljesen üreset hoztam létre. Ez természetesen azzal járt, hogy a benne levő címjegyzékek, felhasználók törlődtek. Tudom, hogy ennek sokan nem fognak örülni, de csak egy e-mail, és máris visszakerül minden szükséges, és pótolhatatlan adatuk.

Hogyan?

Egyszerűen. Tegyük fel, hogy megkaptuk Kala Pál nevű felhasználónktól a reklamációt, hogy márpedig nagyon gyorsan állítsuk helyre neki a címjegyzékét. A következőekben részletesen leírom, hogy miket kell végrehajtani, de előtte néhány megjegyzés a követhetőségért.

A roundcube_db a Roundcube-hoz tartozó aktuális adatbázisom neve, a roundcube_db_backup pedig a régi adatbázis, ezért ezeket tessék a saját konfigurációnknak megfelelőre cserélni. Az előforduló neveket, e-mail címeket szintén tessék cserélgetni értelem szerűen.


mysql -p

mysql>
USE roundcube_db_backup;
mysql> SELECT * FROM users WHERE username = "kala.pal";

Ezek után egy ehhez hasonló kimenetet kapunk:

+---------+-----------+-----------------+-------+---------------------+---------------------+----------+--------------- ---------------------------+

| user_id | username | mail_host | alias | created | last_login | language | preferences |
+---------+-----------+-----------------+-------+---------------------+---------------------+----------+--------------- ---------------------------+
| 641 | kala.pal | imap.sch.bme.hu | | 2008-10-29 19:06:13 | 2009-02-12 10:54:23 | hu_HU | a:2:{s:16:"mes e_sort_order";s:4:"DESC";} |
+---------+-----------+-----------------+-------+---------------------+---------------------+----------+--------------- ---------------------------+
1 row in set (0.00 sec)


Ebből nekünk a felhasználó azonosítójára van szükségünk, amit a user_id oszlop tartalmaz. Esetünkben ez a 641.

mysql> SELECT * FROM contacts WHERE user_id = "641";

+------------+---------------------+-----+------------+-----------------------+-----------+---------+-------+---------+
| contact_id | changed | del | name | email | firstname | surname | vcard | user_id |
+------------+---------------------+-----+------------+-----------------------+-----------+---------+-------+---------+
| 345 | 2009-02-14 13:48:52 | 0 | Gép Elek | gep.elek@email.cim.hu | | | NULL |
641 |
| 543 | 2009-02-14 13:48:55 | 0 | Halász Gabriella | gaboo.mano@sehol.se | | | NULL |
641 |
| 578 | 2008-11-08 21:33:23 | 0 | [kszk] | kszk@mail.cim.hu | | | NULL |
641 |
+------------+---------------------+-----+------------+-----------------------+-----------+---------+-------+---------+
3 rows in set (0.00 sec)


Ezeket a sorokat kell majd a roundcube_db contacts táblájába bele tenni, de előtte még szükségünk van Kala Pál azonosítóira az aktuális adatbázisunkban.

mysql> USE roundcube_db;
mysql> SELECT * FROM users WHERE username = "kala.pal";

mysql> SELECT * FROM contacts;

Az utolsó parancs kiadása után nézzük meg, hogy mi a legutolsó contact_id, mert nekünk eggyel nagyobb értéket kell megadnunk az új adatok megadásánál. Az utolsó oszlopban kala.pal user_id-ját kell megadni, ami esetünkben most 2.

mysql> INSERT INTO contacts (contact_id, changed, del, name, email, firstname, surname, vcard, user_id) VALUES(3,"2008-11-08 21:33:23",0,"[kszk]","kszk@mail.cim.hu","","",NULL,2);

Ezt minden egyes sorral elvégezve felhasználónk már használhatja is újra a címjegyzékét.

Nincsenek megjegyzések: