# Instalace databáze pro uložení modelu Enterprise Architect

<div class="contextual-region block block-core block-local-tasks-block" id="bkmrk-"><div class="contextual-region block block-core block-local-tasks-block">  
</div></div><div class="block block-system block-system-main-block" id="bkmrk-v%C2%A0p%C5%99%C3%ADpad%C4%9B%2C-%C5%BEe-je-na-"><article class="contextual-region node node--type-book node--view-mode-full" data-history-node-id="44" data-quickedit-entity-id="node/44" data-quickedit-entity-instance-id="0" role="article">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.

<div class="node__content"><div class="node__content"><div class="quickedit-field" data-quickedit-field-id="node/44/body/cs/full">1. 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.
2. Z [*https://downloads.mysql.com/archives/installer/*](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).
3. Soubor spustíme
4. Jako typ instalace vybereme *Custom  
    [![MysQL instal.png](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/scaled-1680-/mysql-instal.png)](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/mysql-instal.png)*
5. Vybereme dvě položky k instalování: *MySQL Server 5.7.x – X86  
    Connector/ODBC 5.3.x – X86  
    [![MySQL instal 2_1.png](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/scaled-1680-/mysql-instal-2-1.png)](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/mysql-instal-2-1.png)*
6. Na další záložce spustíme samotnou instalaci *MySQL  
    [![MySQL instal 3.png](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/scaled-1680-/mysql-instal-3.png)](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/mysql-instal-3.png)*
7. 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í)  
    [![MySQL instal 4.png](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/scaled-1680-/mysql-instal-4.png)](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/mysql-instal-4.png) [![MySQL User Acount.png](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/scaled-1680-/mysql-user-acount.png)](https://doc.eainfoport.cz/uploads/images/gallery/2022-03/mysql-user-acount.png)*
8. 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)

</div></div></div><span style="color: #000000;">**Specifické nastavení pro PostgreSQL**</span>

**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í** `<strong>search_path</strong>` **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.

</article></div>