Funzionalità legacy e cronologia
OmniDB ha attraversato diverse vite molto diverse — un progetto universitario, un’app web Python/Django con un ecosistema di plugin, e ora un’applicazione Go a binario singolo. Questa pagina è il posto giusto per tutto ciò che esisteva ma non esiste più: cosa era, perché non tornerà e dove trovarlo se ne hai ancora bisogno. Per la storia del progetto stesso, vedi Introduzione.
Cronologia delle versioni
| Epoca | Cosa era |
|---|---|
| Originale (ASP. NET/C#) | Progetto finale di laurea triennale all’Università Federale del Paraná — il primo strumento a tracciare una linea comune tra PostgreSQL, MySQL/MariaDB, Oracle, SQLite, Firebird e i metadati di SQL Server. |
| OmniDB (Python/Django) | La versione longeva che la maggior parte delle persone conosce: un’app web Django con uno spazio di lavoro basato su browser e, dalla 2.9 in poi, un sistema di plugin Python per estensioni della comunità. Lo sviluppo sul repository OmniDB/OmniDB originale si è fermato intorno al 2020. |
| Ripresa 2025–2026 (3.1.x) | Il progetto è stato ripreso: codebase modernizzato, sicurezza migliorata, supporto nativo per macOS Apple Silicon e una revisione completa della documentazione — ancora sul backend Python/Django a questo punto. |
| Riscrittura Go (3.6.x) | L’intero backend è stato riscritto da Python/Django a Go e distribuito come singolo binario nativo. Il runtime Python, e tutto ciò che aveva senso solo al suo interno — incluso il sistema di plugin — è stato rimosso. |
| Migrazione Wails (completata) | La shell desktop è passata da NW.js a Wails (Go) — un binario più piccolo, nessun Chromium incluso, e l’app ora utilizza la webview nativa del sistema operativo. |
Il sistema di plugin (rimosso)
Il sistema di plugin è stato rimosso come parte della riscrittura 3.6.x del backend da Python/Django a Go, e non è più disponibile.
OmniDB 2.9 ha introdotto un sistema di plugin che permetteva agli utenti di scrivere codice Python, integrato in diverse parti dell’interfaccia, per aggiungere funzionalità personalizzate senza ridistribuire l’intera applicazione. Quel meccanismo dipendeva dall’importazione dinamica di moduli Python arbitrari nel processo server in esecuzione — qualcosa senza equivalente in un binario Go compilato — ed è stato deliberatamente non trasferito. Dal momento che non avrebbe mai più potuto fare nulla di utile, la finestra di dialogo «Plugin» e la sua voce di menu, insieme agli endpoint API sottostanti, sono stati rimossi dall’applicazione completamente, invece di essere mantenuti come stub permanentemente vuoti.
Se facevi affidamento su un plugin specifico, al momento non esiste un modo supportato per portarlo avanti. Qualsiasi cosa un plugin faceva chiamando direttamente il database può di solito essere ancora fatta oggi tramite il normale editor SQL, gli snippet o un’unità di monitoraggio personalizzata.
Debugger passo-passo PL/pgSQL (rimosso)
OmniDB 2.3.0 ha aggiunto un debugger interattivo passo-passo per funzioni e
procedure PL/pgSQL — punti di interruzione, ispezione live delle variabili e statistiche
di esecuzione per riga. Dipendeva da un’estensione C personalizzata di PostgreSQL
(omnidb_plugin) che si agganciava all’API plugin interna di PL/pgSQL,
caricata tramite shared_preload_libraries (un riavvio del server), più uno
schema omnidb dedicato e accesso locale senza password per una
seconda connessione al database, solo per il debugger.
Il debugger è stato rimosso, insieme alle voci di menu «Debug
Funzione»/«Debug Procedura» nell’albero. Non è mai stato portato durante
la riscrittura Go 3.6.x, e l’estensione omnidb_plugin stessa
non è stata toccata dal 2020. Oltre al costo continuo di mantenere
un’estensione C degli interni di PostgreSQL funzionante su ogni nuova versione
maggiore di PostgreSQL, fondamentalmente non può funzionare affatto contro qualsiasi
PostgreSQL gestito/cloud (RDS, Cloud SQL, Supabase, Neon e simili) — nessuno di essi permette
una voce shared_preload_libraries personalizzata — quindi una parte grande e crescente
degli utenti di oggi non avrebbe mai potuto usarlo indipendentemente da quanto fosse
stato mantenuto bene.
La scrittura e l’esecuzione delle funzioni PL/pgSQL in sé non sono influenzate — vedi
Scrittura di funzioni PL/pgSQL. Se
hai bisogno di eseguire passo-passo il codice PL/pgSQL sul tuo server PostgreSQL
self-hosted, il sorgente originale di omnidb_plugin è ancora
disponibile nella
storia del repository originale,
oppure puoi usare pldebugger
(l’equivalente mantenuto attivamente usato da pgAdmin) direttamente, al di fuori di
OmniDB.
pglogical (rimosso)
pglogical
era un’estensione PostgreSQL che forniva un sistema efficiente di replica logica.
Il vecchio plugin omnidb-pglogical aggiungeva nodi nella vista ad albero e azioni
con template SQL (crea nodo, gestisci set di replica, crea sottoscrizioni e così
via) per lavorarci — tutto costruito sul sistema di plugin rimosso sopra, quindi
non si carica più.
Postgres-BDR (rimosso)
Postgres-BDR
(«Bi-Directional Replication») era l’estensione multi-master di 2ndQuadrant per
PostgreSQL. Il vecchio plugin omnidb-bdr forniva lo stesso tipo di
integrazione nella vista ad albero di pglogical. Stessa storia: era un plugin, e il
sistema di plugin da cui dipendeva non esiste più.
Postgres-XL (rimosso)
Postgres-XL
era un fork massivamente parallelo e scalabile orizzontalmente di PostgreSQL (GTM +
coordinator + data node). Il vecchio plugin omnidb-xl aggiungeva
nodi nella vista ad albero consapevoli del cluster. Anche questo era un plugin, anche questo è andato.
Perché nessuno di questi tornerà
Tutti e tre erano integrazioni sottili basate su plugin per fork/estensioni PostgreSQL di nicchia, in gran parte non mantenute a monte — nessuno di pglogical, BDR o Postgres-XL ha visto release significative negli ultimi anni. Ricostruire il sistema di plugin stesso in Go significherebbe progettare un meccanismo di estensione completamente nuovo (plugin compilati, un runtime di scripting o un’API di hook) per un pubblico piccolo e in diminuzione, che non è stato una priorità rispetto al resto della riscrittura Go. Nulla nella riscrittura impedisce di connettersi a un cluster pglogical/BDR/XL come semplice database PostgreSQL e gestire gli oggetti di replica manualmente tramite il normale editor SQL o la scheda Console — semplicemente non si ottengono i nodi dedicati nella vista ad albero e le scorciatoie tramite template SQL che i plugin aggiungevano.
Dove trovare le vecchie release
Le release del classico OmniDB (fino al ~2020) con supporto completo per i plugin sono ancora disponibili, non mantenute, dal repository originale:
- github.com/OmniDB/OmniDB — l’applicazione originale e il suo archivio delle release.
- github.com/OmniDB/plugins — i sorgenti dei plugin pglogical/BDR/XL stessi.
Nessuno dei due repository riceve aggiornamenti. Se hai bisogno di gestione pglogical, BDR o Postgres-XL oggi, una vecchia release da lì — eseguita contro un database corrispondente alla sua epoca — è la tua opzione migliore; non esiste un percorso di migrazione da quella configurazione al attuale OmniDB basato su Go.