.NET

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:

Žá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.