En vedette Outil CLI 2024

ExtMig

Outil CLI open-source pour automatiser et simplifier les workflows de migration de base de données pour les projets TypeScript.

Un outil de développement open-source conçu pour améliorer les workflows de migration et la productivité des équipes de développement modernes.

#open-source#developer-tools#automation#cli#typescript

ExtMig est un outil CLI open-source conçu pour simplifier et automatiser les workflows de migration dans les projets Node.js basés sur TypeScript. Né de la friction liée à la gestion manuelle des migrations de bases de données entre environnements, ExtMig offre aux développeurs une méthode structurée et reproductible pour exécuter, suivre et annuler des migrations depuis une seule commande.

Le projet a été construit avec un fort accent sur l'expérience développeur — configuration TypeScript-first, sortie CLI claire et architecture extensible qui s'intègre aux chaînes d'outils existantes sans imposer une configuration spécifique.

Publié ouvertement sur GitHub, ExtMig témoigne d'un engagement à construire des outils qui résolvent de vrais problèmes dans de vrais workflows de développement, et à contribuer à la communauté open-source.

Fonctionnalités clés

Exécution automatisée des migrations

Exécutez, annulez et testez vos migrations depuis une seule commande CLI avec une sortie claire et une gestion des erreurs.

🔧

Configuration TypeScript-first

Les fichiers de configuration et de migration sont écrits en TypeScript, avec sécurité de typage complète et support IDE.

🔌

Système de plugins extensible

Ajoutez des hooks personnalisés avant et après chaque étape de migration pour s'intégrer à votre chaîne d'outils existante.

↩️

Rollback sécurisé

Chaque migration définit une fonction up et down, permettant des rollbacks propres et prévisibles en développement et en production.

Stack technique

TypeScriptNode.js

Architecture

ExtMig est structuré comme un CLI Node.js avec une architecture basée sur des plugins. Chaque étape de migration est représentée comme une unité atomique, permettant le rollback et le support dry-run. L'outil lit la configuration depuis un fichier local extmig.config.ts et résout les fichiers de migration dans l'ordre.

Défis & Solutions

Les problèmes complexes — et comment je les ai résolus.

Garantir un rollback atomique sur plusieurs étapes

La partie la plus difficile était de concevoir le moteur d'exécution pour que si une étape échoue, l'ensemble du lot soit annulé proprement. Résolu en encapsulant toutes les étapes dans une limite de transaction et en construisant une machine à états interne.

Résolution de configuration TypeScript au runtime

Charger un fichier extmig.config.ts au runtime nécessitait une compilation dynamique avec ts-node/esm. Gérer les formats CJS et ESM sans forcer l'utilisateur à reconfigurer son projet était un défi de compatibilité non trivial.

Plus de projets

Masroufi

Une plateforme mobile de recrutement complète construite avec Flutter en Clean Architecture et BLoC, supportant trois rôles utilisateurs distincts.

FlutterDartBLoCDio +2

Cat'aloge

Une application mobile alimentée par l'IA qui scanne automatiquement votre galerie et organise les photos d'animaux grâce à une inférence TensorFlow Lite entièrement on-device.

FlutterDartTensorFlow LiteRiverpod +1

Accident Risk Navigator

Une plateforme IA full-stack qui prédit le risque d'accident en fonction des conditions routières et météorologiques, et visualise les zones à risque sur des cartes interactives.

ReactTypeScriptPythonTensorFlow +4

Intéressé par une collaboration ?

Je suis toujours ouvert à discuter de nouveaux projets et opportunités.

Jihed Mrouki

Développeur Mobile & Flutter spécialisé dans les architectures évolutives et les solutions mobiles intelligentes.

Me suivre

© 2026 Jihed Mrouki. Tous droits réservés.

Développé avec SvelteKit & TailwindCSS