Funcionalidades Legadas e Histórico
O OmniDB passou por várias vidas muito diferentes — um projeto universitário, uma aplicação web Python/Django com um ecossistema de plugins, e agora uma aplicação Go de binário único. Esta página é o lugar para tudo o que costumava existir mas já não existe: o que era, por que motivo não vai voltar, e onde o encontrar se ainda precisar dele. Para a história do próprio projeto, consulte Introdução.
Cronologia das versões
| Era | O que era |
|---|---|
| Original (ASP. NET/C#) | Projeto final de licenciatura na Universidade Federal do Paraná — a primeira ferramenta a traçar uma linha comum entre os metadados de PostgreSQL, MySQL/MariaDB, Oracle, SQLite, Firebird e SQL Server. |
| OmniDB (Python/Django) | A versão de longa duração que a maioria das pessoas conhece: uma aplicação web Django com um espaço de trabalho baseado no browser e, a partir da 2.9, um sistema de plugins em Python para extensões da comunidade. O desenvolvimento no repositório original OmniDB/OmniDB parou por volta de 2020. |
| Retoma 2025-2026 (3.1.x) | O projeto foi retomado: base de código modernizada, segurança melhorada, suporte nativo para macOS Apple Silicon, e uma revisão completa da documentação — ainda sobre o backend Python/Django nesta fase. |
| Reescrita em Go (3.6.x) | Todo o backend foi reescrito de Python/Django para Go e distribuído como um único binário nativo. O runtime de Python, e tudo o que só fazia sentido dentro dele — incluindo o sistema de plugins — foi removido. |
| Migração para Wails (concluída) | A camada de ambiente de trabalho passou de NW.js para Wails (Go) — um binário mais pequeno, sem Chromium incorporado, e a aplicação agora usa diretamente a webview nativa do próprio sistema operativo. |
O sistema de plugins (removido)
O sistema de plugins foi removido como parte da reescrita 3.6.x do backend de Python/Django para Go, e já não está disponível.
O OmniDB 2.9 introduziu um sistema de plugins que permitia aos utilizadores escrever código Python, integrado em diferentes partes da interface, para adicionar as suas próprias funcionalidades sem reimplementar toda a aplicação. Esse mecanismo dependia da importação dinâmica de módulos Python arbitrários para o processo do servidor em execução — algo sem equivalente num binário Go compilado — e deliberadamente não foi transportado para a nova versão. Como nunca mais poderia fazer nada de útil, a janela «Plugins» e a sua entrada de menu, e os endpoints de API por trás dela, foram removidos da aplicação por completo, em vez de serem mantidos como um stub permanentemente vazio.
Se dependia de um plugin específico, não existe atualmente nenhuma forma suportada de o transportar para a versão atual. Tudo o que um plugin costumava fazer ao chamar diretamente a base de dados normalmente ainda pode ser feito hoje através do editor SQL normal, dos snippets, ou de uma unidade de monitorização personalizada.
Depurador passo a passo de PL/pgSQL (removido)
O OmniDB 2.3.0 adicionou um depurador interativo passo a passo para funções e
procedimentos PL/pgSQL — pontos de interrupção, inspeção de variáveis em tempo real, e
estatísticas de execução por linha. Dependia de uma extensão C personalizada do PostgreSQL
(omnidb_plugin) que se integrava na API interna de plugins do PL/pgSQL,
carregada através de shared_preload_libraries (o que exigia reiniciar o servidor), além de
um esquema omnidb dedicado e acesso local sem palavra-passe para uma
segunda ligação de base de dados, exclusiva para o depurador.
O depurador foi removido, juntamente com as suas entradas de menu de árvore «Debug
Function»/«Debug Procedure». Nunca foi transportado durante a reescrita 3.6.x em
Go, e a própria extensão omnidb_plugin não é alterada desde 2020.
Para além do custo contínuo de manter uma extensão C que mexe em detalhes internos do
PostgreSQL a funcionar em cada nova versão principal do PostgreSQL, ela simplesmente não
funciona de todo contra qualquer PostgreSQL gerido/na nuvem (RDS, Cloud SQL, Supabase, Neon, e
semelhantes) — nenhum deles permite
uma entrada personalizada em shared_preload_libraries — pelo que uma parcela grande e crescente
dos utilizadores atuais nunca a poderia ter usado, independentemente de quão bem
fosse mantida.
Escrever e executar funções PL/pgSQL em si não é afetado — consulte
Escrever Funções PL/pgSQL. Se
precisar de percorrer passo a passo a execução de PL/pgSQL no seu próprio servidor
PostgreSQL autoalojado, o código-fonte original do omnidb_plugin continua
disponível no
histórico do repositório original,
ou pode usar diretamente o pldebugger
(o equivalente ativamente mantido usado pelo pgAdmin), fora do
OmniDB.
pglogical (removido)
O pglogical
era uma extensão do PostgreSQL que disponibilizava um sistema eficiente de replicação lógica.
O antigo plugin omnidb-pglogical adicionava nós na vista em árvore e ações
com modelos SQL (criar nó, gerir conjuntos de replicação, criar subscrições, e assim por
diante) para trabalhar com ele — tudo construído sobre o sistema de plugins removido acima, pelo que
já não carrega.
Postgres-BDR (removido)
O Postgres-BDR
(«Bi-Directional Replication») era a extensão multi-master da 2ndQuadrant para o
PostgreSQL. O antigo plugin omnidb-bdr dava-lhe o mesmo tipo de
integração na vista em árvore que o pglogical. A mesma história: era um plugin, e o
sistema de plugins de que dependia desapareceu.
Postgres-XL (removido)
O Postgres-XL
era um fork do PostgreSQL massivamente paralelo e horizontalmente escalável (GTM +
coordenador + nós de dados). O antigo plugin omnidb-xl adicionava
nós na vista em árvore com conhecimento do cluster para o mesmo. Também era um plugin, também desapareceu.
Por que nenhum destes vai voltar
Os três eram integrações finas, baseadas em plugins, para forks/extensões de PostgreSQL de nicho e maioritariamente sem manutenção a montante — nem o pglogical, o BDR nem o Postgres-XL tiveram lançamentos novos significativos nos últimos anos. Reconstruir o próprio sistema de plugins em Go significaria desenhar um mecanismo de extensão inteiramente novo (plugins compilados, um runtime de scripting, ou uma API de hooks) para um público pequeno e em declínio, o que não tem sido uma prioridade face ao resto da reescrita em Go. Nada na reescrita impede ligar-se a um cluster pglogical/BDR/XL como uma base de dados PostgreSQL normal e gerir objetos de replicação manualmente através do editor SQL normal ou do separador de Consola — simplesmente não obtém os nós dedicados na vista em árvore e os atalhos de modelos SQL que os plugins costumavam adicionar.
Onde encontrar as versões antigas
As versões do OmniDB clássico (até cerca de 2020) com suporte completo de plugins continuam disponíveis, sem manutenção, no repositório original:
- github.com/OmniDB/OmniDB — a aplicação original e o seu arquivo de releases.
- github.com/OmniDB/plugins — o próprio código-fonte dos plugins pglogical/BDR/XL.
Nenhum dos repositórios recebe atualizações. Se precisar de gestão de pglogical, BDR ou Postgres-XL hoje em dia, uma versão antiga a partir de lá — executada contra uma base de dados correspondente à sua época — é a melhor opção; não existe um caminho de migração dessa configuração para o atual OmniDB baseado em Go.