Synthèse automatique
Génère, relit et applique des migrations Alembic en vérifiant que chaque migration est réversible et testée avant mise en production.
Points forts
- Impose une relecture manuelle du fichier généré et signale ce que l'autogenerate rate (index partiels, contraintes personnalisées, changements d'enum)
- Valide systématiquement le cycle upgrade / downgrade -1 / upgrade avant de lancer les tests
- Fournit une procédure explicite de renommage de colonne en deux releases avec migration des données
- Rappelle les précautions pour les grosses tables (>1M lignes) avec lock-timeout et stratégie offline
Limites
- Suppose une stack Python/SQLAlchemy avec Alembic déjà configuré, aucune alternative n'est couverte
- Ne traite pas les migrations de données complexes au-delà du principe add → migrate → remove
- La détection du risque repose sur la lecture humaine de l'étape de review, sans outil d'analyse automatique du diff
À utiliser dès qu'un modèle de app/models/ change et qu'il faut produire une migration Alembic sûre et réversible.
À éviter si le projet n'utilise pas Alembic ou s'il s'agit d'une modification de schéma purement manuelle sans modèle SQLAlchemy associé.
Analyse de sécurité
PrudenceThe skill guides database schema changes using powerful migration tooling. While it includes safety rules and review steps, the actual execution involves potentially destructive database operations and shell commands, warranting caution.
- •Instructs execution of Alembic migration commands which can modify or drop database schema/data.
- •No allowed-tools declared, so the agent may run arbitrary shell commands like alembic and pytest.
- •Downgrade/upgrade cycles can cause data loss if migrations are not reversible or are misapplied.
Exemples
I added a `last_login_at` column and an index on `users.email` in app/models/user.py — generate the Alembic migration, review it for anything autogenerate misses, and verify the downgrade works.We want to rename `users.fullname` to `users.display_name`. Walk me through the two-release plan with Alembic migrations and the data migration step.The `legacy_token` column on `sessions` is no longer referenced anywhere. Generate the migration to drop it, confirm the downgrade restores it, and run pytest after applying.Skill: db-migration
Safely generates, reviews, and applies Alembic database migrations.
When to Use
- Adding new tables or columns
- Renaming columns (with a deprecation plan)
- Adding indexes or constraints
- Removing deprecated columns (after safe deprecation window)
Steps
-
Understand the schema change
- What model changed in
app/models/? - Is this additive (safe) or destructive (risky)?
- What model changed in
-
Generate the migration
alembic revision --autogenerate -m "description_of_change" -
Review the generated file (never skip this)
- Check
upgrade()matches what you intend - Check
downgrade()is correct and reversible - Watch for: dropped columns, renamed columns, changed types
- Autogenerate misses: partial indexes, custom constraints, enum changes
- Check
-
Test the migration
alembic upgrade head # apply alembic downgrade -1 # verify rollback works alembic upgrade head # re-apply -
Run tests after applying migration:
pytest -x -v
Safety Rules
- Never apply a migration that lacks a working
downgrade() - Never drop a column that is still referenced in code
- Rename columns in two releases: add new → migrate data → remove old
- Large table migrations (>1M rows) need
--lock-timeoutand offline strategy
Output
Report: migration filename, what it does, whether downgrade was tested, any risks.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/db-migration-mryiqfzq/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/db-migration-mryiqfzq' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/db-migration-mryiqfzq/download' --output '.skill-downloads/db-migration-mryiqfzq/SKILL.md.part' && mv '.skill-downloads/db-migration-mryiqfzq/SKILL.md.part' '.skill-downloads/db-migration-mryiqfzq/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.
Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/db-migration-mryiqfzq/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.