Migratie van SQLite naar MariaDB

In dit artikel leggen we uit hoe je je Home Assistant database kunt migreren van SQLite (standaard) naar MariaDB (fork van MySQL).

Waarom zou je dit willen doen?
SQLite werkt in principe prima voor de meeste Home Assistant installaties. In de SQLite database worden alle states van alle entiteiten opgeslagen en functioneert dan ook als archief zodat je standaard tot 10 dagen terug kunt kijken in de geschiedenis van alle entiteiten. Je kunt dus bijvoorbeeld tot 10 dagen terug kijken hoe warm het in huis was op een bepaalde dag en tijd.
Hoe meer entiteiten je in Home Assistant hebt, hoe meer statussen er geschreven moeten worden in de database en hoe groter de database dus wordt.
SQLite zal op een gegeven moment trager worden naar mate er miljoenen records gelogged zijn.

Een prima optie is dan ook om te migreren naar MariaDB wat een “echte” databaseserver is en niet een plat bestand.
MariaDB is afgeleid van MySQL en heeft een (veel) betere performance dan SQLite. Zeker als het om zeer grote databases gaat.

Het migreren van SQlite naar MariaDB vergt eigenlijk maar een paar stappen en is zo gepiept!

Migratie starten

Voordat je begint is het handig om te melden dat je je geschiedenis wel kwijt bent. Na de migratie wordt deze wel weer opnieuw opgebouwd.

MariaDB Addon installeren

Als eerste moeten we de MariaDB Addon installeren. Hiervoor gaan we naar Instellingen –> Add-ons.
Klik dan op de knop ADD-ON WINKEL en zoek de MariaDB Addon. Installeer deze vervolgens en wacht tot de installatie klaar is.

Daarna ga je eerst naar MariaDB en dan naar het tabblad Configuratie om eerst enkele zaken goed te zetten.
We moeten een gebruikersnaam en wachtwoord instellen waarmee verbinding gemaakt kan worden. Stel een wachtwoord in naar jouw keuze en klik vervolgens op Opslaan:

MariaDB configuratie home assistant

Ga dan naar het tabblad Informatie:

MariaDB instellen en starten Home Assistant

Zet de schuifjes aan zoals hierboven te zien is en druk vervolgens op Starten.
MariaDB zal nu worden gestart en is klaar voor gebruik.
Noteer de hostnaam, deze heb je nodig bij de volgende stap. In ons geval is de hostnaam core-mariadb

Home Assistant configuratie aanpassen voor MariaDB

Nu kunnen we de configuratie aanpassen en Home Assistant vertellen dat MariaDB gebruikt moet worden als database.

Ga hiervoor naar de File-Editor en open het bestand configuration.yaml

Voeg vrij bovenin maar onder default_config: de volgende code toe:

# Stel Database op MariaDB in
recorder:
  db_url: mysql://homeassistant:JouwWachtWoordHier@MariaDBHostNaam/homeassistant?charset=utf8mb4
  purge_keep_days: 365

Pas het wachtwoord aan en de hostnaam zodat deze overeenkomen met wat je ingesteld hebt.
Het regeltje purge_keep_days is er voor om in te kunnen stellen hoeveel dagen je de geschiedenis wilt behouden. Standaard is dit 10 dagen. Mocht je dit te weinig vinden dan kun je dit aanpassen. In bovenstaand voorbeeld wordt de geschiedenis 365 dagen bewaard. Dagelijks zal Home Assistant een purge actie uitvoeren welke ervoor zorgt dat alles ouder dan de ingestelde waarde uit de database verwijderd zal worden.

Sla nu de aangepaste configuration.yaml op en herstart Home Assistant.
Wanneer Home Assistant weer opgestart is zal deze gebruik maken van de MariaDB maar zul je ook zien dat de geschiedenis leeg is.
Je zou nu ook kunnen merken dat Home Assistant een stuk sneller geworden is!

Het is nu ook mogelijk om in de database te kunnen kijken. Hiervoor kun je de Add-on phpMyAdmin installeren.
Hier kun je dan de database homeassistant selecteren en zie je hoeveel records er in staan en hoe groot de database is:

MariaDB phpMyAdmin Home Assistant

Maar je kunt nu ook de database performance monitoren:

MariaDB phpMyAdmin performance Home Assistant

Gefeliciteerd! je hebt nu een werkende Home Assistant op basis van MariaDB! 🙂

Deel dit:

Laat een reactie achter

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Scroll naar boven