Skip to content
Zonaib Bokhari
Go back

Ef-timelapse: a time-travel viewer for your EF Core schema

A few weeks ago I was staring at a table in a database, trying to figure out when a column showed up and why a particular foreign key existed. The answer was spread across thirty-odd migration files, and finding it meant opening them one by one. EF Core migrations are great at telling you what changed — one file, one point in time. They’re not great at telling you how something evolved.

So I built ef-timelapse. It replays your EF Core schema history — either from migration files, or from Git history if you’re on a scaffolded/database-first setup with no migrations at all — into one browser-based timeline you can scrub through, search, and diff.

dotnet tool install -g ef-timelapse
ef-timelapse serve C:\Path\To\YourProject

It figures out on its own whether your project uses migrations or is a scaffolded project tracked in Git, and serves the same interactive viewer either way — a slider through every migration or commit, a per-entity/per-table property timeline so you can search “Orders” and see every point it changed instead of opening files one by one, and real inline diffs in Git mode, not just a change count.

The migration parser is Roslyn-based and replays migrationBuilder calls directly. If it hits something it can’t statically resolve — a local variable, a helper method, raw SQL — it flags the exact line instead of guessing. I tested it against eShopOnWeb, Microsoft’s reference EF Core sample app, 455 real commits. First run indexes and caches to disk; after that it’s instant, and --watch picks up live changes.

Full writeup with screenshots on dev.to. Source is on GitHub — MIT licensed. Available as a .NET tool on NuGet.


Share this post on:

Next Post
ng-loom: a dependency graph for your Angular app, as a single HTML file