You could either create rolling partitions based directly on the transaction date and drop/create new partitions, or create a new (redundant) column to store to_char(transaction_date,'W'), using that as the partitioning key, and just truncate and reuse partitions.