Restore
Restore

Restore file to captured state

Every captured change carries its SHA-256-addressed content in BLOB_STORE. Restoring writes that content back to the original path — current file gets backed up to <path>.drift_restore_backup_<epoch> before overwrite.

What will change
Preview -- nothing has been written yet.
Target file/var/www/vhosts/3dshawn.com/site1/TEMPLATES/schema_changes.html
SiteDriftSense self-monitor on local
Kindlocal
Captured at2026-07-10 23:21:59
Captured SHAe44d80f7076d347bc1e7ef3f7bc645eb81f18d4ca3d75ad01da161aa6fac9ae6
Current state on disk
Live check just now. If SHAs match, the restore is a no-op.
File presentyes
Size5404 bytes
Current SHA31cb1967eeab
Same as captured?no -- restore will change it
Preflight compile-check ?
No compiler wired for this file type (unsupported). Restore is not gated.
What restore will change — live diff
Left column shows current on-disk content; right shows what restore will write. +6 additions, -38 deletions, 45 unchanged context lines.
11<div class="page-head">
22 <span class="page-eyebrow"><span class="dot"></span> Monitor</span>
33 <h1 class="page-title">Schema changes</h1>
44 <p class="page-subtitle">Every DDL change captured across every monitored database. Someone ALTERs a column? It shows up here whether they told you or not.</p>
55</div>
66
7<form method="get" action="/schema_changes.cgi" style="display:flex;gap:8px;align-items:center;margin-bottom:12px">
7$picker_html
8
9<form method="get" action="/schema_changes.cgi" style="display:flex;gap:8px;align-items:center;margin-bottom:16px">
810 <span class="rb-label" style="font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-muted);font-weight:700">Table filter</span>
911 <input type="text" name="q" value="$q" placeholder="db or table name substring" style="flex:1;background:var(--bg-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:12.5px;font-family:inherit">
1012 <button type="submit" class="tr-chip is-active" style="border:none">Apply</button>
1113 [if:$q]<a class="tr-chip" href="/schema_changes.cgi">Clear</a>[/if]
1214</form>
13
14$picker_html
1515
1616<div class="module glow-amber">
17 <!-- Status filter tabs -->
18 <div class="fc-tabs">
19 <a href="?status=modified$tab_qs_extra" class="fc-tab[if:$tab_modified_active] fc-tab-active[/if]" data-tab="modified">
20 <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
21 <span>Modified</span>
22 <span class="fc-tab-badge">$tab_modified_count</span>
23 </a>
24 <a href="?status=added$tab_qs_extra" class="fc-tab[if:$tab_added_active] fc-tab-active[/if]" data-tab="added">
25 <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
26 <span>Added</span>
27 <span class="fc-tab-badge">$tab_added_count</span>
28 </a>
29 <a href="?status=deleted$tab_qs_extra" class="fc-tab[if:$tab_deleted_active] fc-tab-active[/if]" data-tab="deleted">
30 <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="12" x2="19" y2="12"/></svg>
31 <span>Deleted</span>
32 <span class="fc-tab-badge">$tab_deleted_count</span>
33 </a>
34 <a href="?status=all$tab_qs_extra" class="fc-tab[if:$tab_all_active] fc-tab-active[/if]" data-tab="all">
35 <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/></svg>
36 <span>All</span>
37 <span class="fc-tab-badge">$tab_all_count</span>
38 </a>
39 </div>
40 <div class="module-head" style="border-top:0"><div class="left">
17 <div class="module-head"><div class="left">
4118 <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v6c0 1.7 4 3 9 3s9-1.3 9-3V5"/></svg></div>
42 <div class="module-title">DDL diffs[if:$show_baseline] <span class="pill pill-mute" style="font-size:10px;margin-left:6px">baseline shown</span>[/if]</div>
43 <span class="module-subtitle">
44 Each row shows what the schema looked like before and after. Click to see the full unified diff of column adds, drops, and alters. $total match this window.
45 [if:$has_baseline_hidden]
46 &middot; <a href="?baseline=1" style="color:var(--accent-hi);text-decoration:none">$baseline_hidden baseline capture[if:$has_baseline_hidden]s[/if] hidden</a>
47 <span class="ds-help" data-help-title="Baseline schema captures" data-help-body="When a table is first seen (or after a fresh DB wipe), DriftSense captures its DDL as a baseline (<code>first snapshot</code>). Those rows are marked <code>is_baseline=1</code> and hidden by default because they aren't real schema changes -- they're the starting state. Click the link to see them anyway."></span>
48 [/if]
49 [if:$show_baseline]
50 &middot; <a href="?" style="color:var(--accent-hi);text-decoration:none">Hide baseline</a>
51 [/if]
52 </span>
19 <div class="module-title">DDL diffs</div>
20 <span class="module-subtitle">Each row shows what the schema looked like before and after. Click to see the full unified diff of column adds, drops, and alters. $total match this window.</span>
5321 </div></div>
5422 <div class="module-body tight">
5523 [if:$has_rows]
5624 <table class="tbl">
5725 <thead><tr>
5826 <th style="width:220px">Database.Table</th>
5927 <th>Change</th>
6028 <th style="width:110px">30-day rhythm</th>
6129 <th style="width:110px">Server</th>
6230 <th style="width:180px">When</th>
6331 </tr></thead>
6432 <tbody>
6533 [loop:@rows]
6634 <tr>
6735 <td class="mono"><a href="$diff_url" style="color:var(--accent-hi);text-decoration:none"><strong>$database_name</strong>.<span class="dim">$table_name</span></a></td>
6836 <td class="mono dim" style="font-size:12px"><a href="$diff_url" style="color:inherit;text-decoration:none">$changes_preview</a></td>
6937 <td>$sparkline_svg</td>
7038 <td class="dim">$server_name</td>
7139 <td class="mono dim"><span class="ts" data-ts="$ts_epoch" data-fmt="datetime">$change_datetime</span></td>
7240 </tr>
7341 [/loop]
7442 </tbody>
7543 </table>
7644 [/if]
7745 [if:!$has_rows]
7846 <div style="padding:36px 14px;text-align:center;color:var(--text-dim);font-size:13.5px">
7947 No schema changes captured in this window. Try widening the range with the chips above, or configure a database monitor in <a href="[url:databases]" style="color:var(--accent-hi)">Databases</a>.
8048 </div>
8149 [/if]
8250 </div>
8351</div>
Confirm restore
Backs current content to <target>.drift_restore_backup_<epoch>, writes the captured content, verifies SHA post-write.
Cancel Logged to RESTORE_LOG regardless of outcome.