<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>MySQL Archivy - blog.vyoralek.cz</title>
	<atom:link href="https://blog.vyoralek.cz/stitek/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.vyoralek.cz/stitek/mysql/</link>
	<description>Tech témata, které mě baví</description>
	<lastBuildDate>Sun, 27 Oct 2019 14:22:24 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/cropped-512px-Circle-icons-pencil_2.svg_.png?fit=32%2C32&#038;ssl=1</url>
	<title>MySQL Archivy - blog.vyoralek.cz</title>
	<link>https://blog.vyoralek.cz/stitek/mysql/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">133748570</site>	<item>
		<title>Centrum chytré domácnosti – HomeAssistant (Hass.io) – 16 část – náhrada SQLite databází MySQL</title>
		<link>https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-16-cast-nahrada-sqlite-databazi-mysql/</link>
					<comments>https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-16-cast-nahrada-sqlite-databazi-mysql/#comments</comments>
		
		<dc:creator><![CDATA[jvyoralek]]></dc:creator>
		<pubDate>Sun, 27 Oct 2019 14:21:20 +0000</pubDate>
				<category><![CDATA[Smarthome]]></category>
		<category><![CDATA[hass.io]]></category>
		<category><![CDATA[homeassistant]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQLite]]></category>
		<guid isPermaLink="false">https://blog.vyoralek.cz/?p=2809</guid>

					<description><![CDATA[<p>Ve výchozí instalaci HomeAssistanta se provádí veškeré logování historie do souborové databáze SQLite a my se podíváme jak toto změnit a ukládat do plného databázového systému.</p>
<p>The post <a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-16-cast-nahrada-sqlite-databazi-mysql/">Centrum chytré domácnosti – HomeAssistant (Hass.io) – 16 část – náhrada SQLite databází MySQL</a> appeared first on <a href="https://blog.vyoralek.cz">blog.vyoralek.cz</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Recorder</h2>



<p>Komponenta <strong>HomeAssistanta</strong>, který se stará o ukládání veškerých historických dat se jmenuje <strong>Recorder</strong> a v základní konfiguraci můžeme u ní nastavit:</p>



<ul><li><strong><code>db_url</code> </strong>&#8211;  URL adresa připojení do DB</li><li><strong><code>purge_keep_days</code> </strong>&#8211; počet dnů, pro které chceme zachovat historii &#8211; výchozí konfigurace je 10 dní</li><li><strong><code>purge_interval</code> </strong>&#8211; jak často (ve dnech) spouštět mazací proceduru &#8211; výchozí hodnota je 1 &#8211; každý den, pokud nastavíte na 0 nebude se automaticky vůbec spouštět</li></ul>



<p>Pokud máme entit v systému opravdu hodně může se nám hodit ještě možnost vyloužit některé domény entit a nebo samotné entity z logování pomocí volby <strong><code>exclude</code></strong> &#8211; více v příkladu.</p>



<h3 class="wp-block-heading"><strong>Příklad konfigurace</strong> </h3>



<p>Databáze MySQL, budeme zachovávat historii pouze pro poslední 3 dny a chceme vyloučit pár položek z logování.</p>



<pre class="wp-block-code"><code>recorder:
  db_url: mysql+pymysql://homeassistant:homeassistant@&lt;IPADRESA_HASSIO>/homeassistant?charset=utf8
  purge_keep_days: 3
  purge_interval: 1
  exclude:
    domains:
      - automation
      - weblink
      - updater
    entities:
      - sun.sun</code></pre>



<p>Jak jsme si již řekli ve výchozí instalaci je použita souborová databáze <strong>SQLite</strong>, která má velkou výhodu v tom, že je jednoduchá na konfiguraci a nemusí se instalovat. Pokud však budeme mít sensorů hodně, dříve nebo později zjistíme, že se HomeAssistant stává velmi pomalý a datový soubor má velikost v řádu gigabajtů.</p>



<p>Jednou z možností jak tento problém vyřešit je zmenšit počet dnů, který uchováváme &#8211; pomocí parametru <code>purge_keep_days</code> a nebo migrovat na jiný způsob ukládání dat, resp. do jiné databáze.</p>



<h3 class="wp-block-heading">Podporované databáze</h3>



<table class="wp-block-table"><tbody><tr><td><strong>Databáze</strong></td><td><strong>Formát URL adresa připojení</strong></td></tr><tr><td>SQLite (výchozí)</td><td><code>sqlite:////PATH/TO/DB_NAME</code></td></tr><tr><td>MariaDB</td><td><code>mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8</code></td></tr><tr><td>MySQL</td><td><code>mysql://user:password@SERVER_IP/DB_NAME?charset=utf8</code></td></tr><tr><td>PostgreSQL</td><td><code>postgresql://user:password@SERVER_IP/DB_NAME</code></td></tr><tr><td>MS SQL Server</td><td><code>mssql+pymssql://user:password@SERVER_IP/DB_NAME?charset=utf8</code></td></tr></tbody></table>



<h2 class="wp-block-heading">Konfigurace pro MariaDB / MySQL</h2>



<p>My si nyní ukážeme jak vše nastavit konkrétně pro MariaDB / MySQL. Instalaci samotného databázového serveru zde popisovat nebudu &#8211; kdyby se na tom někdo zasekl dejte vědět a případně to sem doplním.</p>



<p>Celý postup je v následujících 4 krocích.</p>



<h3 class="wp-block-heading">1. Připojení do DB</h3>



<pre class="wp-block-code"><code>mysql -u root -p</code></pre>



<p>&#8230; zadejte MySQL root heslo a zmáčkněte Enter.</p>



<h3 class="wp-block-heading">2. Vytvoření databáze</h3>



<pre class="wp-block-code"><code>CREATE DATABASE homeassistant;</code></pre>



<h3 class="wp-block-heading">3. Vytvoření uživatele</h3>



<pre class="wp-block-code"><code>CREATE USER 'homeassistant'@'&lt;IPADRESA_HASSIO>' IDENTIFIED BY 'homeassistant';

GRANT DROP, INSERT, EXECUTE, UPDATE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, CREATE ROUTINE, GRANT OPTION, TRIGGER, LOCK TABLES, EVENT, REFERENCES, ALTER ROUTINE, SHOW VIEW, INDEX, SELECT, CREATE, ALTER ON `homeassistant`.* TO 'homeassistant'@'&lt;IPADRESA_HASSIO>';

FLUSH PRIVILEGES;</code></pre>



<h3 class="wp-block-heading">4. Nastavení HomeAssistanta</h3>



<p>Jak jsme si již ukázali na začátku o celou agendu ukládání historických dat se stará komponenta recorder, u které nastavíme URL:</p>



<h4 class="wp-block-heading">Pro MariaDB a nebo MySQL 8.0</h4>



<pre class="wp-block-code"><code>db_url: mysql+pymysql://homeassistant:homeassistant@&lt;IPADRESA_HASSIO>/homeassistant?charset=utf8</code></pre>



<h4 class="wp-block-heading">Pro MySQL &lt;8.0</h4>



<pre class="wp-block-code"><code>db_url: mysql://homeassistant:homeassistant@&lt;IPADRESA_HASSIO>/homeassistant?charset=utf8</code></pre>



<p>Když se po restartu podíváme do MySQL databáze měli bychom vidět automaticky vytvořené čtyři tabulky a v nich už první záznamy.</p>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="921" height="274" src="//i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png" alt="" class="wp-image-2814" srcset="https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?w=921&amp;ssl=1 921w, https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?resize=300%2C89&amp;ssl=1 300w, https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?resize=768%2C228&amp;ssl=1 768w, https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?resize=370%2C110&amp;ssl=1 370w, https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?resize=270%2C80&amp;ssl=1 270w, https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?resize=570%2C170&amp;ssl=1 570w, https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2019/10/image-23.png?resize=740%2C220&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></figure>



<p>Celý HomeAssistant je po této změně mnohem svižnější. Budu to ještě pár dnů sledovat, jestli se neobjeví nějaký zádrhel, ale zatím to vypadá jako upgrade k doporučení.</p>



<p>Pokud už s tímto máte někdo zkušenosti, dejte prosím vědět do komentářů.</p>



<p class="has-medium-font-size">Kompletní série o HomeAsistantovi obsahuje následující články:</p>



<ul>
<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-1-cast/">1. část</a> &#8211; Instalace HomeAsisstent </li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-2-cast-integrace-sonoff/">2. část</a> &#8211; <g class="gr_ gr_10 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="10" data-gr-id="10">Integrace</g> Sonoff s firmware Sonoff-<g class="gr_ gr_11 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="11" data-gr-id="11">Tasmota</g></li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-3-cast-integrace-homekit/">3. část</a> &#8211; <g class="gr_ gr_12 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="12" data-gr-id="12">Integrace</g> Homekit</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-4-cast-integrace-sonoff-2/">4. část</a> &#8211; <g class="gr_ gr_13 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="13" data-gr-id="13">Integrace</g> Sonoff s firmware Sonoff-Tasmota &#8211; 2 část</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-5-cast-wemos-d1-bme280-a-sht31/">5. část</a> &#8211; <g class="gr_ gr_14 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="14" data-gr-id="14">Integrace</g> s Wemos D1 a <g class="gr_ gr_15 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="15" data-gr-id="15">senzory</g> <g class="gr_ gr_20 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" id="20" data-gr-id="20">teploty</g></li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-6-cast-sonoff-esphome/">6. část</a> &#8211; <g class="gr_ gr_16 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="16" data-gr-id="16">Integrace</g> Sonoff s firmware ESPHome</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-7-cast-sonoff-pow-esphome/">7. část</a> &#8211; <g class="gr_ gr_17 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="17" data-gr-id="17">Integrace</g> Sonoff POW s firmware ESPHome</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-8-cast-led-esphome/">8. část</a> &#8211; <g class="gr_ gr_18 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="18" data-gr-id="18">Integrace</g> LED Magic Home s firmware ESPHome</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-9-cast-integrace-zigbee-xiaomi-mijia-a-aqara/">9. část</a> &#8211; <g class="gr_ gr_31 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace" id="31" data-gr-id="31">Integrace</g> Xiaomi Mijia a Aqara</li>



<li><a href="https://blog.vyoralek.cz/iot/vlastni-zigbee-gateway/">10. část</a> &#8211; Integrace vlastní Zigbee gateway</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-11-cast-vzdaleny-pristup-do-hass-io/">11. část</a> &#8211; Vzdálený přístup do Hass.io z Internetu</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-12-cast-zobrazeni-senzorovych-dat-pomoci-influxdb-a-grafany/">12. část</a> &#8211; zobrazení senzorových data pomocí InfluxDB a Grafany</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-13-cast-add-ony-ktere-pouzivam/">13. část</a> &#8211; Hass.io Add-ony, které používám</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-mi-flora/">14. část</a> &#8211; Integrace Xiaomi Mi Flora</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-15-cast-integrace-withings-nokia/">15. část</a> &#8211; Integrace Withings (Nokia) </li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-16-cast-nahrada-sqlite-databazi-mysql/">16. část</a> &#8211; náhrada SQLite databází MySQL</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-17-cast-hacs-addony/">17. část</a> &#8211; HACS Add-ony &#8211; instalace a konfigurace</li>



<li><a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-18-cast-integrace-sonoff-3/">18. část</a> &#8211; Integrace Sonoff s firmware eWeLink </li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-nova-integrace-tasmota-v-beta-verzi/">19. část</a> &#8211; nová integrace Sonoff pro HA</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-20-mereni-spotreby/">20. část</a> &#8211; měření spotřeby</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-21-automaticke-zalohy-a-obnoveni-ze-zalohy/">21. část </a>&#8211; automatické zálohy a obnovení ze zálohy</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-22-napojeni-hlasoveho-asistenta-amazon-alexa/">22. část</a> &#8211; napojení hlasového asistenta Amazon Alexa</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-23-automaticke-zalohy-2/">23. část</a> &#8211; automatické zálohy na síťový sdílení disk (Samba)</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-24-bluetooth-zarizeni-a-esphome-proxy/">24. část</a> &#8211; Bluetooth zařízení a ESPHome proxy</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-25-nefunkcni-blokovana-aktualizace-homeassistanta/">25. část</a> &#8211; nefunkční aktualizace HomeAssistanta</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-26-integrace-bluetooth-produktu-switchbot/">26. část</a> &#8211; integrace SwitchBot produktů</li>



<li><a href="https://blog.vyoralek.cz/iot/homeassistant-27-integrace-fotovoltaiky-a-prehledy-v-ha/">27. část</a> &#8211; integrace fotovoltaiky Growatt</li>
</ul>
<p>The post <a href="https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-16-cast-nahrada-sqlite-databazi-mysql/">Centrum chytré domácnosti – HomeAssistant (Hass.io) – 16 část – náhrada SQLite databází MySQL</a> appeared first on <a href="https://blog.vyoralek.cz">blog.vyoralek.cz</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.vyoralek.cz/iot/centrum-chytre-domacnosti-homeassistant-hass-io-16-cast-nahrada-sqlite-databazi-mysql/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2809</post-id>	</item>
		<item>
		<title>ASP.NET Core 2.1 s napojením na MySQL databázi</title>
		<link>https://blog.vyoralek.cz/programovani/asp-net-core-2-1-s-napojenim-na-mysql-databazi/</link>
					<comments>https://blog.vyoralek.cz/programovani/asp-net-core-2-1-s-napojenim-na-mysql-databazi/#comments</comments>
		
		<dc:creator><![CDATA[jvyoralek]]></dc:creator>
		<pubDate>Sun, 19 Aug 2018 12:36:20 +0000</pubDate>
				<category><![CDATA[Programování]]></category>
		<category><![CDATA[ASP.NET Core]]></category>
		<category><![CDATA[databáze]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web framework]]></category>
		<guid isPermaLink="false">https://blog.vyoralek.cz/?p=582</guid>

					<description><![CDATA[<p>ASP.NET Core framework ve verzi 2 obsahuje standardně podporu Microsoft SQL Serveru a SQL Lite. Pokud však z jakýchkoliv důvodů chcete pro data použít databázi MySQL/MariaDB pak je zatím stále potřeba podporu nainstalovat. Podíváme se jak na to. Přehled komponent V době psaní toho článku jsou k dispozici v podstatě dvě komponenty NuGet Package Autor [&#8230;]</p>
<p>The post <a href="https://blog.vyoralek.cz/programovani/asp-net-core-2-1-s-napojenim-na-mysql-databazi/">ASP.NET Core 2.1 s napojením na MySQL databázi</a> appeared first on <a href="https://blog.vyoralek.cz">blog.vyoralek.cz</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>ASP.NET Core framework ve verzi 2 obsahuje standardně podporu Microsoft SQL Serveru a SQL Lite. Pokud však z jakýchkoliv důvodů chcete pro data použít databázi MySQL/MariaDB pak je zatím stále potřeba podporu nainstalovat. Podíváme se jak na to.</p>



<figure class="wp-block-image"><img decoding="async" width="770" height="385" src="https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2018/08/NET-core-2.1-1-793x397.png?resize=770%2C385&#038;ssl=1" alt="" class="wp-image-585" data-recalc-dims="1"/></figure>



<h2 class="wp-block-heading">Přehled komponent</h2>



<p>V době psaní toho článku jsou k dispozici v podstatě dvě komponenty</p>



<table class="wp-block-table"><tbody><tr><td><strong>NuGet Package</strong></td><td><strong>Autor</strong></td></tr><tr><td><a href="https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql">Pomelo.EntityFrameworkCore.MySql</a></td><td><a href="https://github.com/PomeloFoundation">Pomelo Foundation Project</a></td></tr><tr><td><a href="https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore">MySql.Data.EntityFrameworkCore</a></td><td><a href="http://dev.mysql.com/">MySQL project</a> (Oracle)</td></tr></tbody></table>



<p>Já jsem se po přečtení pár článků rozhodl pro komponentu Pomela, jelikož Oracle ve své komponentě neřeší vše podle standardů Microsoftu pro ostatní databáze.</p>



<h2 class="wp-block-heading">Instalace komponenty</h2>



<p>Pokud používáme Microsoft Visual Studio Code pak stačí přidat jeden řádek mezi reference .csproj:</p>



<pre class="wp-block-code"><code>&lt;Project Sdk="Microsoft.NET.Sdk.Web">
...
  &lt;ItemGroup>
    ...
    &lt;PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.1.1" />
  &lt;/ItemGroup>
&lt;/Project></code></pre>



<p>Pokud používáme Microsoft Visual Studio pak můžeme použít NuGet explorer:</p>



<figure class="wp-block-image"><img decoding="async" width="666" height="181" src="https://i0.wp.com/blog.vyoralek.cz/wp-content/uploads/2018/08/asp.net_mysql.png?resize=666%2C181&#038;ssl=1" alt="" class="wp-image-583" data-recalc-dims="1"/><figcaption>NuGet explorer a komponenta od Pomela</figcaption></figure>



<h2 class="wp-block-heading">Konfigurace</h2>



<p>Prvním krokem je úprava Startup.cs, konkrétně části ConfigureServices:</p>



<pre class="wp-block-code"><code>...
using Pomelo.EntityFrameworkCore.MySql;
...
  public void ConfigureServices(IServiceCollection services)
  {
    ...
    services.AddDbContext&lt;YourDbContext>(options =>
      options
         .useMySql(
            Configuration.GetConnectionString("MySQL")));
...</code></pre>



<p>Další krok už je potřeba jen pokud jste využili Identity frameworku. Ten má v základu nadefinované určité primární a unikátní klíče tak, že s tím má MySQL v kombinaci s UTF8 problém.</p>



<p>Doporučované kódování databáze je <code>utf8mb4</code>, přičemž pokud si nejste jistí co máte nastaveno, pak můžete použít tento příkaz:</p>



<pre class="wp-block-code"><code>show variables like 'character_set_database';</code></pre>



<p>Využijeme tedy vlastnosti DBContext třídy, kde máme ještě možnost &#8222;ladit&#8220; vlastnosti jednotlivých modelů a my si tak změníme vlastnosti Identity modelů, které už nám Microsoft předdefinoval.</p>



<p>Konkrétně využijeme metody OnModelCreating, která po úpravě může vypadat nějak takto:</p>



<pre class="wp-block-code"><code>base.OnModelCreating(builder);

// Shorten key length for Identity
builder.Entity&lt;IdentityUser>(entity => {
  entity.Property(m => m.Id).HasMaxLength(127);
  entity.Property(m => m.NormalizedUserName).HasMaxLength(127);
});

builder.Entity&lt;IdentityRole>(entity => {
  entity.Property(m => m.Id).HasMaxLength(127);
  entity.Property(m => m.NormalizedName).HasMaxLength(127);
});

builder.Entity&lt;IdentityUserLogin&lt;string>>(entity => {
  entity.Property(m => m.LoginProvider).HasMaxLength(127);
  entity.Property(m => m.ProviderKey).HasMaxLength(127);
});
 
builder.Entity&lt;IdentityUserRole&lt;string>>(entity => {
  entity.Property(m => m.UserId).HasMaxLength(127);
  entity.Property(m => m.RoleId).HasMaxLength(127);                
});

builder.Entity&lt;IdentityUserToken&lt;string>>(entity => {
  entity.Property(m => m.UserId).HasMaxLength(127);
  entity.Property(m => m.LoginProvider).HasMaxLength(127);
  entity.Property(m => m.Name).HasMaxLength(127);
});</code></pre>



<h2 class="wp-block-heading">Aplikace změn modelů</h2>



<p>Pokud jsme už vytvořili inicializační migrační model včetně identity frameworku, pak jsme se zřejmě setkali s touhle chybou:</p>



<pre class="wp-block-code"><code>CREATE UNIQUE INDEX `RoleNameIndex` ON `AspNetRoles` (`NormalizedName`);
...
Specified key was too long; max key length is 767 bytes ---> MySql.Data.MySqlClient.MySqlException </code></pre>



<p>Musíme tedy předchozí migraci smazat a vytvořit novou verzi a aplikovat na DB. Dost možná se pak setkáte i s hláškou:</p>



<pre class="wp-block-code"><code>Table 'AspNetRoles' already exists</code></pre>



<p>Bude tedy potřeba promazat i příslušnou tabulku ručně z DB.</p>



<p>Sekvence příkazů pro vytvoření migrace a aplikaci na DB je:</p>



<pre class="wp-block-code"><code>dotnet ef migrations add &lt;nameOfStep> 
dotnet ef database update</code></pre>



<p>Vše ostatní zatím vypadá, že funguje stejně jako v případě použití MSQL nebo SQL Lite.</p>
<p>The post <a href="https://blog.vyoralek.cz/programovani/asp-net-core-2-1-s-napojenim-na-mysql-databazi/">ASP.NET Core 2.1 s napojením na MySQL databázi</a> appeared first on <a href="https://blog.vyoralek.cz">blog.vyoralek.cz</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.vyoralek.cz/programovani/asp-net-core-2-1-s-napojenim-na-mysql-databazi/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">582</post-id>	</item>
	</channel>
</rss>
