La gestione degli Schema di database è uno dei principali problemi dei reparti IT e dei DBA, non di rado infatti questa procedura richiede un impegnativo lavoro da operare manualmente. Trattandosi però di una problematica comune a diversi professionisti, negli anni sono state sviluppate diverse soluzioni volte a semplificare questa fase. A tal proposito questa volta vogliamo parlavi di Skeema.
Si tratta di un tool open source, scritto in linguaggio Go, per il managing delle tabelle di MySQL e delle modifiche a carico degli Schema. Sostanzialmente Skeema è stato ideato per essere d'auiuto nelle migrazioni tra un tipo di database ad un altro, capita infatti sempre più spesso di dover interagire con database presenti in diversi environment, dunque i creatori del progetto hanno sviluppato dei tool per garantire una gestione semplificata ed automatizzata di tali processi.
Skeema fornisce appunto una CLI (cioè un'interfaccia da riga di comando) dalla quale è possibile attivare degli strumenti che permettono di:
- Esportare le istruzioni CREATE TABLE a livello di filesystem per il tracking nei repository, utile nel caso in cui si lavori con soluzioni per il versioning come git o svn;
- evidenziare le differenze negli Schema repo cosi da generare automaticamente la struttura definita tramite DDL (Data Definition Language);
- gestire più ambienti alla volta (sviluppo, staging, produzione) e mantenerli sincronizzati tra loro;
- configurare l'uso dei tool per le modifiche degli Schema (istruzioni ALTER);
- convertire migration locali in Schema per la produzione.
Skeema supporta inoltre i flussi di lavoro basati sulle pull-request per le operazioni di modifica, invio, revisione e esecuzione. Questa funzionalità permette ai team di gestire i cambiamenti degli schema nello stesso modo in cui vengono gestite le modifiche a livello di codice. Skeema è disponibile tramite Github sotto licenza Apache 2.0, dunque il suo sorgente può essere adattato e migliorato sulla base delle diverse esigenze da developer di terze parti.