Install
$ agentstack add skill-alisinadevelo-md-files-safe-database-migrations ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Safe Database Migrations
A migration runs against live data with live traffic. The goals: no downtime, no data loss, and a way back if it goes wrong. Schema changes are the highest-risk routine operation most teams perform — treat them with care.
The expand/contract pattern
Never make a breaking schema change in one step. Split it across deploys so old and new code both work at every point:
- Expand — add the new structure, backward-compatible. New nullable column, new
table, new index (built concurrently). Old code ignores it.
- Migrate — backfill data in batches (not one giant
UPDATE), and deploy code
that writes to both old and new (dual-write) while still reading old.
- Switch — deploy code that reads from the new structure.
- Contract — once nothing references the old structure, add constraints
(NOT NULL after backfill) and drop the old column/table in a later deploy.
Each step is independently deployable and reversible.
Avoid long locks
- Adding a NOT NULL column with a default can rewrite the whole table on some engines —
add nullable, backfill, then set the constraint.
- Build indexes concurrently / online where the engine supports it.
- Backfill in bounded batches with a short pause; a single large transaction holds locks
and bloats replication lag.
- Know your engine's locking semantics for each DDL operation before you run it.
Always have a rollback
Every forward migration needs a tested down, or an explicit, documented reason it's irreversible (and then: backup first). A dropped column or table is not reversible — treat destructive steps as one-way doors and gate them behind a verified, idle period.
Before running on production
- Test on a copy with realistic data volume — a migration that's instant on 100 rows
can lock a table for minutes on 100M.
- Estimate lock duration and replication impact.
- Make data migrations idempotent and resumable so a mid-run failure can be retried.
- Separate schema changes from data changes from code deploys where possible.
Red flags in review
A single UPDATE over a huge table · ALTER TABLE that rewrites in place under load · NOT NULL added before backfill · a down migration that loses data silently · no batch size on a backfill · dropping a column in the same deploy that stops using it.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: AlisinaDevelo
- Source: AlisinaDevelo/md-files
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.