Bug 24541: Purge old messages
misc/cronjobs/cleanup_database.pl provides some database cleanup. This patch adds cleanup for messages table. Test plan : - Count messages : select count(*),date(message_date) from messages group by date(message_date); - Run cleanup : misc/cronjobs/cleanup_database.pl -v --confirm --messages 365 - Recount messages Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr> Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
ae1ae478fd
commit
ead1493f5b
1 changed files with 21 additions and 0 deletions
|
@ -23,6 +23,7 @@ use constant DEFAULT_ZEBRAQ_PURGEDAYS => 30;
|
|||
use constant DEFAULT_MAIL_PURGEDAYS => 30;
|
||||
use constant DEFAULT_IMPORT_PURGEDAYS => 60;
|
||||
use constant DEFAULT_LOGS_PURGEDAYS => 180;
|
||||
use constant DEFAULT_MESSAGES_PURGEDAYS => 365;
|
||||
use constant DEFAULT_SEARCHHISTORY_PURGEDAYS => 30;
|
||||
use constant DEFAULT_SHARE_INVITATION_EXPIRY_DAYS => 14;
|
||||
use constant DEFAULT_DEBARMENTS_PURGEDAYS => 30;
|
||||
|
@ -50,6 +51,7 @@ use Koha::Old::Holds;
|
|||
use Koha::Old::Patrons;
|
||||
use Koha::Item::Transfers;
|
||||
use Koha::PseudonymizedTransactions;
|
||||
use Koha::Patron::Messages;
|
||||
|
||||
sub usage {
|
||||
print STDERR <<USAGE;
|
||||
|
@ -68,6 +70,8 @@ Usage: $0 [-h|--help] [--confirm] [--sessions] [--sessdays DAYS] [-v|--verbose]
|
|||
-m --mail DAYS purge items from the mail queue that are older than DAYS days.
|
||||
Defaults to 30 days if no days specified.
|
||||
--merged purged completed entries from need_merge_authorities.
|
||||
--messages DAYS purge entries from messages table older than DAYS days.
|
||||
Defaults to 365 days if no days specified.
|
||||
--import DAYS purge records from import tables older than DAYS days.
|
||||
Defaults to 60 days if no days specified.
|
||||
--z3950 purge records from import tables that are the result
|
||||
|
@ -137,6 +141,7 @@ my $pOldIssues;
|
|||
my $pOldReserves;
|
||||
my $pTransfers;
|
||||
my ( $pPseudoTransactions, $pPseudoTransactionsFrom, $pPseudoTransactionsTo );
|
||||
my $pMessages;
|
||||
|
||||
GetOptions(
|
||||
'h|help' => \$help,
|
||||
|
@ -150,6 +155,7 @@ GetOptions(
|
|||
'import:i' => \$pImport,
|
||||
'z3950' => \$pZ3950,
|
||||
'logs:i' => \$pLogs,
|
||||
'messages:i' => \$pMessages,
|
||||
'fees:i' => \$fees_days,
|
||||
'searchhistory:i' => \$pSearchhistory,
|
||||
'list-invites:i' => \$pListShareInvites,
|
||||
|
@ -182,6 +188,7 @@ $mail = DEFAULT_MAIL_PURGEDAYS if defined($mail)
|
|||
$pSearchhistory = DEFAULT_SEARCHHISTORY_PURGEDAYS if defined($pSearchhistory) && $pSearchhistory == 0;
|
||||
$pListShareInvites = DEFAULT_SHARE_INVITATION_EXPIRY_DAYS if defined($pListShareInvites) && $pListShareInvites == 0;
|
||||
$pDebarments = DEFAULT_DEBARMENTS_PURGEDAYS if defined($pDebarments) && $pDebarments == 0;
|
||||
$pMessages = DEFAULT_MESSAGES_PURGEDAYS if defined($pMessages) && $pMessages == 0;
|
||||
|
||||
if ($help) {
|
||||
usage(0);
|
||||
|
@ -214,6 +221,7 @@ unless ( $sessions
|
|||
|| defined $pPseudoTransactions
|
||||
|| $pPseudoTransactionsFrom
|
||||
|| $pPseudoTransactionsTo
|
||||
|| $pMessages
|
||||
) {
|
||||
print "You did not specify any cleanup work for the script to do.\n\n";
|
||||
usage(1);
|
||||
|
@ -334,6 +342,19 @@ if ($pLogs) {
|
|||
print "Done with purging action_logs.\n" if $verbose;
|
||||
}
|
||||
|
||||
if ($pMessages) {
|
||||
print "Purging messages older than $pMessages days.\n" if $verbose;
|
||||
my $messages = Koha::Patron::Messages->filter_by_last_update(
|
||||
{ timestamp_column_name => 'message_date', days => $pMessages } );
|
||||
my $count = $messages->count;
|
||||
$messages->delete if $confirm;
|
||||
if ( $verbose ) {
|
||||
say $confirm
|
||||
? sprintf( "Done with purging %d messages", $count )
|
||||
: sprintf( "%d messages would have been removed", $count );
|
||||
}
|
||||
}
|
||||
|
||||
if ($fees_days) {
|
||||
print "Purging records from accountlines.\n" if $verbose;
|
||||
purge_zero_balance_fees( $fees_days ) if $confirm;
|
||||
|
|
Loading…
Reference in a new issue