DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Find out why something works on one environment (e.g. UAT) but not another (e.g. PROD) by comparing their Sitecore content side by side.
Two files:
| File | What it does | Where it runs |
|---|---|---|
Export-Content.ps1 | Reads content from Sitecore and downloads it as a .json file. Read-only. It changes nothing. | Inside Sitecore (PowerShell ISE) |
compare.html | Compares two of those files and lists the differences. | Your browser. Nothing is uploaded. |
Export-Content.ps1 in Notepad, copy everything, and paste it into the ISE.$EnvironmentName to "UAT"$RootPaths to the part of the site with the issue, e.g. "/sitecore/content/<YourSite>/Home"$Database = "master" for now.content-UAT-master-20261012-1530.json downloads.Repeat Step 1 on the PROD CM with $EnvironmentName = "PROD" and the same paths.
compare.html to open it in your browser.You'll see counts at the top. Click one to filter, then click any item to see exactly which fields differ. Download CSV gives you a list to share with the team.
To see what the page looks like first, click Try with demo data.
| Box 1 | Box 2 | What it finds |
|---|---|---|
UAT master | PROD master | Content that differs between environments |
UAT web | PROD web | Differences in what the live sites actually show |
PROD master | PROD web | Content edited on PROD but not published. This is a very common cause. |
To export the published content, set $Database = "web".
| Result | Meaning |
|---|---|
| Missing in target | The item exists in box 1 but not box 2 |
| Language version missing | The item exists, but not in that language |
| Only in target | The item exists only in box 2 |
| Field values differ | The same item has different content. __Renderings / __Final Renderings differences mean the page layout (components) differs. |
| Path differs | The item was moved or renamed |
| Template differs | The item is built on a different template |
| Same path, different ID | The item was created separately in each environment, so anything linking to it by ID can break |
Open compare.html and pick what you want to check:
| Option | What it finds | What you need |
|---|---|---|
| Unpublished changes | Content edited in the CMS but not published, templates never published, deletions not published | The Preview and Live Context IDs of one environment |
| Two environments | Differences between e.g. UAT and Prod | One Context ID per environment, both Live or both Preview |
Context IDs are in XM Cloud Deploy → your environment → Developer settings (use the Preview/Live switch). Treat them like passwords: don't commit them or paste them into chats.
Then enter the start path. Use the site item, e.g. /sitecore/content/<Collection>/<Site>, so Home, Data and Presentation are all included. Click Compare.
Click See an example to try the page with made-up data first.
Open the page through the local server (http://localhost:8765/compare.html). Then:
Next time, just click the project in the sidebar. Choose the environment(s) and the IDs fill in for you. The dots next to each environment show what's saved: ● both IDs, ◐ only one.
Where it's saved: in this browser, on this computer only. Clearing the browser's site data removes it.
projects.local.json (for backup or a new laptop). Import loads one back.projects.local.json file in this folder is also picked up automatically and shown with a "file" tag.Keep the IDs safe: they're credentials.
.gitignore.-a 127.0.0.1, so only your own computer can reach it.{ } brackets, ready to paste into Content Editor search.Keep edge-core.js in the same folder as compare.html; the page needs it.
Browsers can block pages opened by double-clicking (a file:// address) from calling Experience Edge.
Option 1 (easiest): open the page through a small local server instead. In a terminal in this folder:
npx http-server -p 8765 -c-1 -a 127.0.0.1
Then open http://localhost:8765/compare.html. Press Ctrl+C in the terminal when you're done.
Option 2: run the fallback script (needs Node.js) in PowerShell, from this folder, once for each side:
$env:EDGE_CONTEXT_ID = "<Preview Context ID>"
node edge-export.mjs --name preview --path "/sitecore/content/<Collection>/<Site>/Home"
$env:EDGE_CONTEXT_ID = "<Live Context ID>"
node edge-export.mjs --name live --path "/sitecore/content/<Collection>/<Site>/Home"
Then drop the preview file in box 1 and the live file in box 2.