четверг, 24 июля 2014 г.

Чистка базы TT-RSS.



Tiny Tiny RSS  это - такой аналог почившего Google Reader, только ставится он на собственный хостинг, и больше одного пользователя в нем обычно не бывает. Подобных читалок в интернете много больших и не очень, для страховки от их внезапного закрытия некоторые предпочитают держать свою. С одной стороны удобно, что архив новостей всегда под рукой, а с другой не очень, потому что за всех хозяйством приходится следить.

Подписки появляются и исчезают, а посты в базе остаются. Какие-то подписки ценны этим самым архивом, а в некоторых ценность поста пропадает уже на следующий день. Вот для вторых я набросал несколько SQL-запросов, чтобы удалить из базу информацию, которая после отписки от ленты стала для владельца мусором:

DELETE from ttrss_user_entries WHERE ttrss_user_entries.feed_id not in (SELECT ttrss_feeds.id from ttrss_feeds);
DELETE from ttrss_entries WHERE ttrss_entries.id not in (SELECT ttrss_user_entries.ref_id from ttrss_user_entries);
DELETE from ttrss_tags WHERE ttrss_tags.post_int_id not in (SELECT ttrss_entries.id from ttrss_entries);
Запускать эти запросы надо в контексте базы TTRSS. В результате из базы будут удалены все посты, которым не соответствует ни одной из подписок.