YetiDev

Snapshots & Resets

How the site goes back to your snapshot

The Snapshot

  • Go live (and Take a new snapshot) copies every table with your site's table prefix to {prefix}dmsnap_* tables in the same database, and the uploads folder to wp-content/yetidm-snapshot.
  • Demo Maker's own tables (log, outbox, sandboxes and leads) are not part of the snapshot, so resets never delete them.
  • Database views are not copied and are left as they are. The Site check tab lists any it finds.

How a Reset Works

  • Fresh copies of the snapshot tables are built next to the live ones, then all of them are swapped in with one database statement. A reset that is cut off leaves the old site or the new one, never a mix.
  • Only upload files that visitors added or changed are touched, so resets stay fast.
  • Plain PHP and the WordPress database layer are used. No mysqldump, exec or shell access is needed, so it works on shared hosting.
  • Your own login is kept, so a reset never logs you out. Visitors are logged out.
  • Every reset also ends all private sandboxes.

Schedule

  • Reset every: 30 minutes, 1 hour, 3 hours, 6 hours, 12 hours or daily.
  • The reset job checks every 5 minutes whether a reset is due. Reset now on the Dashboard runs one straight away.
  • WordPress only runs scheduled jobs when someone visits. For resets on time, ask your host to call the Server cron address on the Dashboard every 5 minutes. It looks like https://demo.example.com/?yetidm_cron=KEY. You can make a new address on the Dashboard; the old one then stops working.
  • If WP-Cron is turned off on your site (DISABLE_WP_CRON), resets only happen through the server cron address.

Checks After Each Reset

  • Pages to check after each reset: one path per line, such as / or /shop/. Each is loaded after the reset.
  • If a page shows an error, an email goes to Email problems to. This is the only email the site sends for real.
  • A reset that fails is tried again after one reset interval, so a lasting problem does not email you every few minutes.

Moving Sample Dates Forward

Use the yetidm_after_reset action, which runs after every reset once the snapshot is back. See Developers.