Instalace databáze pro uložení modelu Enterprise Architect
V případě, že je na počítači nainstalován nebo na síti dostupný databázový stroj je možné tuto kapitolu přeskočit.
Instalace a konfigurace MySql
Zde si ukážeme, jak nainstalovat jeden z podporovaných databázových strojů.
Jde o MySql, který je doporučován jako ideální pro potřeby jak samotného programu Enterprise Architect, tak i EaInfoportu.
- Před vlastní instalací MySQL je potřeba zajistit, že je na počítači nainstalovaný pomocný balíček vcredist_x86.exe ve verzi 2013. Na internetu vyhledáme „Visual C++ Redistributable Packages for Visual Studio 2013“ a variantu vcredist_x86.exe uložíme na disk a spustíme.
Po odsouhlasení licence se balíček nainstaluje. Počítač není potřeba restartovat. Soubor vcredist_x86.exe smažeme. - Z https://downloads.mysql.com/archives/installer/ stáhneme webový instalační program ve verzi 32-bit z 5.7.x řady. Aktuálně tedy mysql-installer-web-community-5.7.28.0.msi
Soubor uložíme na lokální disk (například do složky C:\EAInfoport). - Soubor spustíme
- Jako typ instalace vybereme Custom

- Vybereme dvě položky k instalování:
MySQL Server 5.7.x – X86
Connector/ODBC 5.3.x – X86
- Na další záložce spustíme samotnou instalaci MySQL

- Nastavení na dalších záložkách necháme defaultní.
Pouze na záložce s nastavením účtů a rolí nejprve vyplníme kořenové heslo (pro správce databáze) a následně vytvoříme infoport uživatele, pod kterým se budeme do databáze později přihlašovat.
Všechna hesla (správcovské zvlášť) by měla byt bezpečná. Pro demonstrační účely, ale v manuálu používáme jako heslo frázi P@ssw0rd (bude později vidět v definici připojení)

- Instalační soubor mysql-installer-web-community-5.7.28.0.msi smažeme z disku.
Tím máme dokončenu instalaci databáze i ODBC driveru (ale ten bude ještě potřeba nakonfigurovat)
Specifické nastavení pro PostgreSQL
Problém
Aplikace používá Entity Framework Core, který při připojení k PostgreSQL očekává, že systémová tabulka migrací __EFMigrationsHistory bude vytvořena v tom schématu, které je nastavené jako první položka v search_path.
Pokud má uživatel v PostgreSQL nastavený search_path na jiné schéma (např. public), ale aplikace používá vlastní schéma (např. infoport), EF Core vytvoří nebo hledá tabulku __EFMigrationsHistory ve špatném schématu. Výsledkem je, že aplikace:
-
nenajde existující migrace,
-
pokouší se vytvářet tabulky znovu,
-
nebo skončí chybou při startu.
Řešení – nastavení search_path uživateli v PostgreSQL
Prosíme o nastavení správného search_path pro uživatele, pod kterým se aplikace přihlašuje do databáze.
1. Nastavit search_path uživateli
ALTER USER <uzivatel> SET search_path = infoport, public;
Po tomto nastavení bude PostgreSQL při každém přihlášení automaticky používat schéma infoport jako výchozí, což je nutné pro správný běh aplikace.
2. Ověření
Po přihlášení daného uživatele:
SHOW search_path;
Očekávaný výstup:
Kód
infoport, public
Alternativa – nastavení v connection stringu
Pokud není možné upravit nastavení uživatele, lze search_path nastavit i v connection stringu:
Search Path=infoport
nebo
Search_path=infoport
Důležité upozornění
Pokud je search_path uveden v connection stringu, přebije nastavení uživatele v PostgreSQL. Proto je potřeba použít jen jednu z výše uvedených variant.
Shrnutí
Aplikace Infoport vyžaduje, aby uživatel používaný aplikací měl nastavený:
Kód
search_path = infoport, public
Bez tohoto nastavení PostgreSQL ukládá systémovou tabulku migrací do jiného schématu, což způsobuje nefunkčnost aplikace.
No Comments