Предупреждаю сразу — сам еще не попробовал, надо дождаться выходных, когда люди спать будут 🙂
Вобщем всем хорош модуль Monitoring в openfire, но есть один боооольшой недостаток, нет возможности в WEB интерфейсе почистить историю сообщений. Тупо хранит все.
У друзей возникла задача, оставлять только свежие сообщения. Т.е. удалять все, что древнее одного месяца.
Полазив по базе openfire обнаружил табличку:
mysql> describe ofMessageArchive;
+—————-+—————+——+——+———+—-—+
| Field | Type | Null | Key | Default | Extra |
+—————-+—————+——+——+———+—-—+
| conversationID | bigint(20) | NO | MUL | NULL | |
| fromJID | varchar(255) | NO | | NULL | |
| toJID | varchar(255) | NO | | NULL | |
| sentDate | bigint(20) | NO | | NULL | |
| body | text | YES | | NULL | |
+—————-+—————+——+——+———+—-—+
+—————-+————
| conversationID | bigint(20) | NO | MUL | NULL | |
| fromJID | varchar(255) | NO | | NULL | |
| toJID | varchar(255) | NO | | NULL | |
| sentDate | bigint(20) | NO | | NULL | |
| body | text | YES | | NULL | |
+—————-+————
Как видно из таблицы, все будет крутиться вокруг sentDate.
В результате появилась вот такая вот командочка:
delete from ofMessageArchive where sentDate/1000 < unix_timestamp(now())-2629743
По идее должно почистить табличку.
Погуглив по имени таблицы, нашел вот это: http://community.igniterealtime.org/docs/DOC-2199
В выходные проверю.