Que fait convex-migration-helper ?
Planifie les migrations de schéma et de données Convex avec widen-migrate-narrow et @convex-dev/migrations. Utilisez-le pour les changements de schéma cassants, les backfills, le remodelage de tables ou les déploiements sans temps d'arrêt.
Utilisation
Ce skill vous aide à planifier une migration Convex en trois phases : widen (élargir), migrate (migrer), narrow (rétrécir). Il prend en charge :
- Les modifications de schéma cassantes (suppression/renommage de colonnes)
- Les backfills de données (remplissage de nouvelles colonnes)
- Le remodelage de tables (partitionnement, fusion)
- Les déploiements sans interruption de service
Comment l'utiliser
- Décrivez le changement de schéma ou de données souhaité.
- Le skill planifie la migration en trois étapes.
- Il génère le code de migration et les instructions appropriés.
Commandes prises en charge
npx convex migrate
Exemple
Utilisateur : Je souhaite renommer la colonne email en emailAddress dans ma table users.
Réponse du skill :
Voici le plan de migration :
- Phase widen : Ajoutez une nouvelle colonne
emailAddressfacultative. - Phase migrate : Écrivez une fonction de migration pour copier les données de
emailversemailAddress. - Phase narrow : Supprimez la colonne
emailune fois que tous les enregistrements sont mis à jour.
// migration.ts
import { defineMigration } from "@convex-dev/migrations";
export default defineMigration({
async up(ctx) {
const users = await ctx.db.query("users").collect();
for (const user of users) {
await ctx.db.patch(user._id, { emailAddress: user.email });
}
},
});
Exécutez ensuite : npx convex migrate.
Ressources
- Documentation officielle : https://docs.convex.dev/migrations
- Package @convex-dev/migrations : https://www.npmjs.com/package/@convex-dev/migrations