Database Migration Timeline
A timeline-style migration tracker section: a vertical connecting line runs alongside a list of schema migrations, each marked with a status dot (applied, pending, or failed), its migration filename in monospace, a one-line description of what it changes, and a timestamp. Built for changelog pages and internal ops dashboards.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/database-migration-timeline.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/devtools/devtools13.tsx instead.
Usage
The file also exports devtools13Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Devtools13, devtools13Demo } from "@/components/blocks/devtools/devtools13"; export default function Page() { return <Devtools13 {...devtools13Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | "Database migration timeline" | Section heading. |
| description | string | undefined | Section intro text below the heading. |
| migrations | Migration[] | [] | Timeline entries, expected in run order (oldest first, matching the demo data). |
| className | string | none | Extra classes for the outer section element. |
Types
type MigrationStatus = "applied" | "pending" | "failed"; type Migration = { name: string; description: string; timestamp: string; status: MigrationStatus; };
Behavior notes
- Entirely static; no client-side interactivity. The connecting line is a single border-left on the wrapping container, not per-item SVG, so it runs continuously behind every dot regardless of list length.
- Status dot color and icon are fixed by status value (applied=emerald check, pending=amber clock, failed=red X) and are not configurable beyond changing status.
- timestamp is a plain display string; the demo data mixes past timestamps for applied/failed entries with "Scheduled for..." and "Not yet run" text for pending ones, but the component itself does not interpret or format the string.
- Order is entirely the caller's responsibility: the component renders migrations in array order and does not sort by timestamp or status.
More DevTools Blocks
View all →api-endpoints-sample-call
API Endpoints With Sample Call
Reference list of API endpoints paired with a live sample request and response panel.
cicd-pipeline-status
CI/CD Pipeline Status
Recent CI/CD pipeline runs with per-stage status chips and overall run badges.
code-diff-viewer
Code Diff Viewer
Unified code diff panel with a file header change summary and colored addition/deletion lines.
keyboard-shortcuts-reference
Keyboard Shortcuts Reference
Grouped keyboard shortcut reference with keycap-styled key combos.
performance-waterfall
Performance Waterfall
Network request waterfall chart with cascading timing bars colored by duration.
service-health-board
Service Health Board
Infrastructure status board with a live summary strip and per-service uptime, latency, and health.