ExtMig
Open-Source-CLI-Tool zur Automatisierung und Vereinfachung von Datenbank-Migrations-Workflows für TypeScript-Projekte.
Ein Open-Source-Entwicklerwerkzeug zur Verbesserung von Migrations-Workflows und Produktivität für moderne Entwicklungsteams.
ExtMig ist ein Open-Source-CLI-Tool, das entwickelt wurde, um Migrations-Workflows in TypeScript-basierten Node.js-Projekten zu vereinfachen und zu automatisieren. Entstanden aus der Reibung bei der manuellen Verwaltung von Datenbankmigrationen zwischen Umgebungen, bietet ExtMig Entwicklern eine strukturierte, reproduzierbare Methode zum Ausführen, Verfolgen und Zurückrollen von Migrationen mit einem einzigen Befehl.
Das Projekt wurde mit starkem Fokus auf Entwicklererfahrung aufgebaut: TypeScript-first-Konfiguration, klare CLI-Ausgabe und eine erweiterbare Architektur, die sich in bestehende Toolchains integriert, ohne eine bestimmte Einrichtung zu erzwingen.
Offen auf GitHub veröffentlicht, spiegelt ExtMig das Engagement wider, Werkzeuge zu entwickeln, die echte Probleme in echten Entwicklungs-Workflows lösen, und zur Open-Source-Community beizutragen.
Hauptfunktionen
Automatisierte Migrationsausführung
Migrationen per einzigem CLI-Befehl ausführen, zurückrollen und testen: mit klarer Ausgabe und Fehlerbehandlung.
TypeScript-first Konfiguration
Konfigurations- und Migrationsdateien werden in TypeScript geschrieben: mit vollständiger Typsicherheit und IDE-Unterstützung.
Erweiterbares Plugin-System
Benutzerdefinierte Hooks vor und nach jedem Migrationsschritt hinzufügen, um sich in bestehende Toolchains zu integrieren.
Sicheres Rollback
Jede Migration definiert eine up- und down-Funktion für saubere und vorhersehbare Rollbacks in Entwicklung und Produktion.
Tech-Stack
Architektur
ExtMig ist als Node.js-CLI mit einer Plugin-basierten Architektur aufgebaut. Jeder Migrationsschritt wird als atomare Einheit dargestellt, was Rollback und Dry-Run-Unterstützung ermöglicht. Das Tool liest die Konfiguration aus einer lokalen extmig.config.ts-Datei und löst Migrationsdateien der Reihe nach auf.
Herausforderungen & Lösungen
Die schwierigen Probleme, und wie ich sie gelöst habe.
Atomares Rollback über mehrere Schritte sicherstellen
TypeScript-Konfigurationsauflösung zur Laufzeit
Weitere Projekte
Interesse an einer Zusammenarbeit?
Ich bin immer offen für Gespräche über neue Projekte und Möglichkeiten.