Zastaralé funkce a historie
OmniDB si prošla několika velmi odlišnými životy — univerzitním projektem, webovou aplikací v Pythonu/Django s ekosystémem pluginů a nyní jednosouborovou aplikací v Go. Tato stránka je místem pro vše, co dříve existovalo, ale dnes už ne: co to bylo, proč se to nevrátí a kde to najít, pokud to stále potřebujete. Příběh samotného projektu najdete v kapitole Úvod.
Časová osa verzí
| Éra | O co šlo |
|---|---|
| Původní verze (ASP. NET/C#) | Bakalářská závěrečná práce na Federální univerzitě v Paraná — první nástroj, který propojil společnou linii mezi metadaty PostgreSQL, MySQL/MariaDB, Oracle, SQLite, Firebird a SQL Server. |
| OmniDB (Python/Django) | Dlouhodobě nejznámější verze: webová aplikace v Django s pracovním prostředím v prohlížeči a od verze 2.9 také s pluginovým systémem v Pythonu pro komunitní rozšíření. Vývoj v původním repozitáři OmniDB/OmniDB se zastavil kolem roku 2020. |
| Obnovení v letech 2025–2026 (3.1.x) | Projekt byl znovu oživen: modernizovaná kódová základna, vylepšené zabezpečení, nativní podpora macOS Apple Silicon a kompletní přepracování dokumentace — stále na backendu v Pythonu/Django. |
| Přepis do Go (3.6.x) | Celý backend byl přepsán z Pythonu/Django do Go a je distribuován jako jediný nativní binární soubor. Python runtime a vše, co dávalo smysl jen uvnitř něj — včetně systému pluginů — bylo odstraněno. |
| Přechod na Wails (hotovo) | Desktopová schránka aplikace se přesunula z NW.js na Wails (Go) — menší binární soubor, žádný vestavěný Chromium a aplikace nyní využívá vlastní nativní webview operačního systému. |
Systém pluginů (odstraněno)
Systém pluginů byl odstraněn v rámci přepisu backendu 3.6.x z Pythonu/Django do Go a již není k dispozici.
OmniDB 2.9 zavedla systém pluginů, který uživatelům umožňoval psát kód v Pythonu, napojený na různé části rozhraní, a přidávat tak vlastní funkce bez nutnosti znovu nasazovat celou aplikaci. Tento mechanismus závisel na dynamickém importu libovolných modulů Pythonu do běžícího procesu serveru — něco, co nemá v kompilovaném binárním souboru Go žádnou obdobu — a záměrně nebyl převeden. Protože už nemohl dělat nic užitečného, byl dialog „Pluginy“ a jeho položka v menu, spolu s API endpointy za ním, z aplikace zcela odstraněn, místo aby zůstal jako trvale prázdný pahýl.
Pokud jste se spoléhali na konkrétní plugin, aktuálně neexistuje žádný podporovaný způsob, jak jej převést do nové verze. Cokoliv, co plugin dříve dělal přímým voláním do databáze, lze obvykle stále provést běžným SQL editorem, pomocí úryvků (snippets) nebo vlastní monitorovací jednotkou.
Krokovací debugger PL/pgSQL (odstraněno)
OmniDB 2.3.0 přidala interaktivní krokovací debugger pro funkce a procedury
PL/pgSQL — breakpointy, živé sledování proměnných a statistiky provádění
po jednotlivých řádcích. Závisel na vlastní C rozšíření pro PostgreSQL
(omnidb_plugin), které se napojovalo na interní pluginové API
PL/pgSQL a bylo načítáno přes shared_preload_libraries (vyžadující
restart serveru), a dále na vyhrazeném schématu omnidb a
bezheslovém lokálním přístupu pro druhé, výhradně debuggerové připojení k
databázi.
Debugger byl odstraněn, spolu s položkami menu ve stromu
„Debug Function“/„Debug Procedure“. Nebyl převeden během přepisu do Go 3.6.x
a samotné rozšíření omnidb_plugin nebylo od roku 2020 upravováno.
Kromě průběžných nákladů na udržování C rozšíření pracujícího s vnitřnostmi
PostgreSQL funkčního napříč každou novou hlavní verzí PostgreSQL navíc zásadně
nemůže fungovat vůbec proti žádnému spravovanému/cloudovému PostgreSQL (RDS,
Cloud SQL, Supabase, Neon a podobné) — žádný z nich neumožňuje vlastní
položku v shared_preload_libraries — takže velká a rostoucí
část dnešních uživatelů by jej stejně nikdy nemohla použít, ať by byl
udržovaný sebelépe.
Psaní a spouštění samotných funkcí PL/pgSQL tím není nijak dotčeno — viz
Psaní funkcí v PL/pgSQL. Pokud
potřebujete procházet provádění PL/pgSQL krokově na vlastním self-hostovaném
serveru PostgreSQL, původní zdrojový kód omnidb_plugin je stále
dostupný v
historii původního repozitáře,
nebo můžete mimo OmniDB přímo použít
pldebugger
(aktivně udržovaný ekvivalent používaný nástrojem pgAdmin).
pglogical (odstraněno)
pglogical
bylo rozšíření PostgreSQL poskytující efektivní systém logické replikace.
Starý plugin omnidb-pglogical přidával uzly do stromového
pohledu a akce založené na SQL šablonách (vytvoření uzlu, správa replikačních
sad, vytváření odběrů atd.) pro práci s ním — vše postavené na výše
odstraněném systému pluginů, takže se už nenačte.
Postgres-BDR (odstraněno)
Postgres-BDR
(“Bi-Directional Replication“) bylo multi-masterové rozšíření pro PostgreSQL
od společnosti 2ndQuadrant. Starý plugin omnidb-bdr mu poskytoval
stejný typ integrace do stromového pohledu jako pglogical. Stejný příběh: byl
to plugin a systém pluginů, na kterém závisel, je pryč.
Postgres-XL (odstraněno)
Postgres-XL
byl masivně paralelní, horizontálně škálovatelný fork PostgreSQL (GTM +
koordinátor + datové uzly). Starý plugin omnidb-xl pro něj
přidával uzly ve stromovém pohledu s podporou clusteru. Také plugin, také
pryč.
Proč se nic z toho nevrátí
Všechny tři byly tenké, na pluginech založené integrace pro okrajové, převážně neudržované forky/rozšíření PostgreSQL — ani pglogical, ani BDR, ani Postgres-XL nezaznamenaly v posledních letech žádná smysluplná nová vydání. Znovu vybudovat samotný systém pluginů v Go by znamenalo navrhnout zcela nový mechanismus rozšíření (kompilované pluginy, skriptovací runtime nebo hook API) pro malé a zmenšující se publikum, což nebylo prioritou vůči zbytku přepisu do Go. Nic na přepisu nebrání připojení ke clusteru pglogical/BDR/XL jako k běžné databázi PostgreSQL a ruční správě replikačních objektů přes běžný SQL editor nebo záložku Konzole — pouze nezískáte vyhrazené uzly ve stromovém pohledu a zkratky se SQL šablonami, které pluginy dříve přidávaly.
Kde najít stará vydání
Vydání klasické OmniDB (do roku ~2020) s plnou podporou pluginů jsou stále dostupná, neudržovaná, v původním repozitáři:
- github.com/OmniDB/OmniDB — samotná původní aplikace a archiv jejích vydání.
- github.com/OmniDB/plugins — samotné zdrojové kódy pluginů pglogical/BDR/XL.
Žádný z repozitářů už není aktualizován. Pokud dnes potřebujete správu pglogical, BDR nebo Postgres-XL, je vaší nejlepší volbou staré vydání odtud — spuštěné proti databázi odpovídající jeho době — neexistuje žádná migrační cesta z tohoto uspořádání do současné OmniDB založené na Go.