database-migration
Planifier les migrations de bases de données avec sécurité de rollback
Également disponible depuis: Doyajin174,CleanExpo
Les migrations de bases de données peuvent casser la production si elles sont précipitées. Cette compétence fournit des modèles éprouvés pour les changements de schéma sécurisés, les transformations de données et les rollbacks avec Sequelize, TypeORM et Prisma.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "database-migration". Provide a zero downtime plan to rename users.name to users.full_name
Résultat attendu:
- Phase 1: Ajouter la nouvelle colonne full_name à côté de la colonne name existante
- Phase 2: Déployer le code qui écrit dans les deux colonnes simultanément
- Phase 3: Exécuter le backfill pour copier les valeurs de name vers full_name par lots
- Phase 4: Basculer les lectures de l'application vers la colonne full_name
- Phase 5: Après vérification, supprimer l'ancienne colonne name dans un déploiement séparé
Utilisation de "database-migration". Create a checkpoint-based rollback strategy for migrating a full_address field
Résultat attendu:
- Créer une table de sauvegarde avec CREATE TABLE AS SELECT avant la migration
- Effectuer la migration en petits lots avec vérification après chaque lot
- En cas d'échec, restaurer avec DROP TABLE et CREATE TABLE AS SELECT depuis la sauvegarde
- Supprimer la table de sauvegarde après vérification réussie
Audit de sécurité
SûrThe static analyzer flagged 42 potential issues, but all are false positives. SKILL.md contains only documentation and code examples for database migration patterns. The 'weak cryptographic algorithm' findings were triggered by text patterns in documentation describing migration operations. The 'Ruby/shell backtick execution' findings misidentified command-line comments as shell execution. No actual executable code, credential access, or network exfiltration patterns exist. This is static instructional content only.
Facteurs de risque
🌐 Accès réseau (1)
⚙️ Commandes externes (25)
Score de qualité
Ce que vous pouvez construire
Déploiement à zéro temps d'arrêt
Planifier des migrations progressives qui maintiennent l'application disponible pendant les changements de schéma avec des stratégies de déploiement blue-green.
Transformation de données
Concevoir des backfills sécurisés et des refactorings de colonnes avec des options de rollback basées sur des points de contrôle pour les grands ensembles de données.
Stratégie de migration ORM
Comparer les approches de migration lors d'un passage entre Sequelize, TypeORM et Prisma avec des considérations de compatibilité.
Essayez ces prompts
Créer un plan de migration sûr pour ajouter une colonne status non-null avec une valeur par défaut dans Sequelize, incluant les étapes de rollback et les considérations de backfill de données.
Décrire un processus à zéro temps d'arrêt pour renommer users.name en users.full_name avec déploiement progressif, stratégie de backfill et étapes de nettoyage.
Montrer une approche de migration qui gère les différences de type JSON entre MySQL et PostgreSQL dans TypeORM avec une logique conditionnelle.
Concevoir une stratégie de rollback basée sur des points de contrôle pour une migration de données qui divise un champ full_address en composants street, city, state et zip.
Bonnes pratiques
- Toujours fournir une étape de rollback pour chaque migration avec des méthodes down() appropriées
- Tester les migrations sur des données de staging qui reflètent la production avant le déploiement
- Utiliser des changements de schéma petits et incrémentaux plutôt que des migrations monolithiques volumineuses
Éviter
- Supprimer des colonnes avant de vérifier le backfill de données et la compatibilité de l'application
- Exécuter de grandes migrations sans limites de transactions ou de plans de rollback
- Ignorer la gestion des valeurs NULL et les impacts des contraintes de clé étrangère pendant les transformations
Foire aux questions
Quels ORM sont supportés ?
Y a-t-il des limites de taille pour les migrations ?
Puis-je intégrer cela dans les pipelines CI ?
Accède-t-il à ma base de données ou à mes secrets ?
Que faire si une migration échoue à mi-parcours ?
Comment se compare-t-il aux outils de migration ?
Détails du développeur
Auteur
wshobsonLicence
MIT
Dépôt
https://github.com/wshobson/agents/tree/main/plugins/framework-migration/skills/database-migrationRéf
main
Structure de fichiers
📄 SKILL.md