Journal Tracker

Track changes to selected MySQL tables, review request groups, and roll back eligible entries from the WordPress admin

Free WordPress plugin · Version 1.0.1

JYP Journal Tracker

Track changes to selected MySQL tables, review related database writes as request groups, and roll back eligible entries from the WordPress admin.

JYP Journal Tracker uses MySQL triggers to record INSERT, UPDATE, and DELETE operations on selected InnoDB tables. Review the recorded values and history before deciding whether to roll back.

Created by JYP - Just Your Plugin.

How it works

01 · Track

Choose the tables

Enable journaling for the InnoDB tables you need to monitor. Database triggers record inserts, updates, and deletes, including the values needed to review changes.

02 · Review

Understand each request

Inspect individual entries or group changes by the database request that made them. Review timestamps, source, row values, and the number of changes before taking action.

03 · Recover

Roll back eligible changes

Roll back a request group in reverse event order, or select individual entries. The plugin checks for later conflicting changes and stops an unsafe rollback.

Key features

Flexible InnoDB tables

Journal tables with different schemas, including composite primary keys. Tables without a primary key can be tracked after the plugin adds and initializes a row GUID.

Rollback protection

Temporarily block INSERT, UPDATE, and DELETE operations on all registered InnoDB source tables while an administrator performs rollbacks.

Retention and diagnostics

Configure journal retention, run scheduled or manual cleanup, inspect journal values, and diagnose registered tables and triggers.

Use case: undo an accidental Elementor page edit

Journaling must be enabled for the relevant content tables before the accidental edit takes place.

  1. In Tracker Manager, enable journaling for the content tables involved, commonly wp_posts and wp_postmeta. Use your site's actual table prefix.
  2. After the edit is saved, open Journal and select All. Find the request group or groups created by the save, then review their timestamps, source, change count, and details.
  3. Enable Rollback protection if a temporary write freeze on all registered tables is acceptable for your site.
  4. Roll back relevant groups from newest to oldest. Review any conflict message; do not force a database change that conflicts with later activity.
  5. Verify the page in WordPress and Elementor, then turn Rollback protection OFF to allow writes again.

Requirements and compatibility

WordPress and PHP

WordPress 6.0 or later and PHP 7.4 or later.

MySQL

MySQL 8.0.13 or later. MariaDB, other database servers, and MySQL replication are not supported.

Storage and permissions

Every source table and the plugin's journal tables must use InnoDB. The database user needs permissions to create and manage tables, indexes, partitions, and triggers.

A table without a primary key requires the plugin to add and populate a GUID column. Run this initialization during a maintenance window with other writers stopped. Some schemas may be incompatible with required journal columns or MySQL identifier limits.

Plan rollbacks carefully

Rollback protection is a temporary write freeze, not a general maintenance mode. Visitors can browse the site, but writes to registered tables will fail while protection is ON. This includes saves from open browser sessions, scheduled jobs, and integrations.

Protection does not block DDL such as ALTER, DROP, or TRUNCATE; writes to unregistered tables; every foreign-key cascade; or every possible database-level operation. Keep backups and use appropriate database access controls.

Keep your audit history. Journal data stays in the site's database and may contain personal or sensitive row values. Restrict administrator access and choose a suitable retention period. Deactivation does not remove journal data or triggers; turn rollback protection OFF before deactivating.

JYP PLUGINS

The Establishment