Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Data Migration

ASecurity

Migrate database schemas (Alembic, SQLite), file formats, and archives with tested recovery.

10 stars
0 votes
0 copies
0 views
Added 9/23/2026
ai-agentspythongosqldjangotestinggitdatabasedocumentation

Security Analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned 10/7/2026

$npx -y skills add fmind/dot --skill data-migration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data Migration?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Data Migration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fmind-data-migration/badge)](https://www.skillsdirectory.com/skills/fmind-data-migration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: data-migration
description: "Migrate database schemas (Alembic, SQLite), file formats, and archives with tested recovery."
license: MIT
metadata:
  kind: task
  author: Médéric HURIER (Fmind)
  source: github.com/fmind/dot/tree/main/skills/data-migration
  created: "2026-09-09"
  updated: "2026-10-07"
---

# Data Migration

Change persisted data while preserving its declared meaning and recovery path. [django](../python-web/references/django/GUIDE.md) owns Django migration mechanics; [production-readiness](../production-readiness/SKILL.md) owns the launch decision, and [duckdb](../duckdb/SKILL.md) owns ad-hoc analysis.

## Workflow

1. **Inspect stored versions, reject unknown ones**: inspect actual stored versions rather than inferring them from current code. Reject unsupported versions and malformed input with a recoverable error; do not silently reinterpret them.
1. **Choose the transition**: use the project's migration engine for databases. For mixed deployed readers, expand compatibility, backfill, switch readers, then contract only after old readers are retired. For files or immutable archives, write a new versioned generation and retain the old one.
1. **Prepare recovery**: take a consistent snapshot and prove it can be restored and read in isolation. Record disk needs, lock duration, the rollback cutoff, and treatment of writes after that cutoff. A schema downgrade is not necessarily data recovery.
1. **Implement resumably**: use transactional units or atomic generation publication. Commit progress with the corresponding data, use stable identities, and make retries skip verified completed units. Bind checkpoints to input identity and migration version; reject a resume against changed input.
1. **Rehearse failures**: use representative old data plus empty, malformed, Unicode, duplicate, and boundary-sized cases. Interrupt before and after data/checkpoint publication, resume, and compare with an uninterrupted result. Test a second invocation and old-reader compatibility where promised.
1. **Execute within scope**: production mutation or intentional data loss requires its specific authority; prepare the migration diff, rehearsal results, duration, and recovery plan before requesting any missing approval. Preserve applied migration history.
1. **Verify and report**: read the result through the application, check the declared invariants, inspect migration status, and report migrated, rejected, and unresolved units separately. Keep the old generation or backup until the retention decision is authorized.

## Storage details

- **Alembic**: follow [Alembic migrations](references/alembic.md) for metadata wiring, autogeneration review, revision heads, and upgrade rehearsal against the selected database.
- **SQLite**: follow [SQLite rehearsal](references/sqlite.md) for WAL-safe snapshots, transactions, and integrity checks; a main-file copy during active writes is insufficient.
- **Publish files atomically**: stage output on the target filesystem, flush and sync as required by the durability contract, validate it, then atomically publish a manifest or pointer. Multi-file renames are not one transaction. Preserve required permissions and never overwrite an immutable generation in place.
- **Rebuild caches only when reproducible**: rebuild only when the authoritative input and the selected parser/version can reproduce them. A rebuild is not a substitute for migrating unique source data.

## Documentation

- [SQLite backup](https://www.sqlite.org/backup.html) · [SQLite transactions](https://www.sqlite.org/lang_transaction.html) · [Django migrations](https://docs.djangoproject.com/en/stable/topics/migrations/)
- Releases: [Alembic changelog](https://alembic.sqlalchemy.org/en/latest/changelog.html)
- Companion skills: [python-testing](../python-testing/SKILL.md) (regression and property tests), [implementation-plan](../implementation-plan/SKILL.md) (ordered rollout).

Attribution

fmindfmind
View sourceSee grades on GitHubMore from fmind →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →