Databases

Databases

Voor nagenoeg alle applicaties zijn databases een requirement, binnen het Managed App Platform wordt het gebruik van databases dan ook ondersteund. Op dit moment is er ondersteuning voor de volgende databases:


Van alle databases op het Managed App Platform worden backups gemaakt, deze backups worden 30 dagen bewaard. Op basis van de gebruikte templates en vereiste environment variabelen kan Shock Media de benodigde configuratiewaarden voor het gebruik van de gekozen database in de environment variables van de deployment beschikbaar stellen.

Bij het opleveren van applicaties met databases zullen de volgende configuratie worden gedeeld:

Configuratievereisten Waarden
AppID $APP_ID
Database Host $DB_SERVICENAME
Database User $DB_USERNAME
Database Password $DB_PASSWORD
Database Name $DB_NAME
Database Port $DB_PORT

Met deze informatie zal het werken met de database mogelijk worden gemaakt. Op deze pagina zullen wij ook refereren naar deze waarden.

Verbinden met de database vanaf de MaintPod

Op de maintpod zijn de cli clients voor bovenstaande databases aanwezig. Deze kunnen in combinatie met de juiste credentials gebruikt worden om een verbinding naar de database op te zetten via de MaintPod.

voorbeeldcommando's voor de databases:

# MySQL en MariaDB
mysql -u $DB_USERNAME -p$DB_PASSWORD $DB_NAME -h $DB_SERVICENAME

# MongoDB
mongosh mongodb://$DB_USERNAME:$DB_PASSWORD@$DB_SERVICENAME:$DB_PORT/$DB_NAME

# PostgreSQL
psql -U $DB_USERNAME -h $DB_SERVICENAME 

Verbinden met de database middels databasemanagementsoftware

Om een verbinding middels databasemanagementsoftware in te stellen is het van belang dat deze software ondersteuning biedt voor het instellen van een ssh tunnel / verbinding.

Als hostname voor de ssh server kan lb.k8s.shockmedia.host worden gebruikt en als user jouw $APP_ID, de poort om te verbinden is 32222. Wanneer jouw key op de MaintPod is ingesteld zal deze verbinding opgesteld kunnen worden. Voor de database host waarde dient de $DB_SERVICENAME van de database te worden opgegeven. De databasenaam en verdere credentials zijn bij de oplevering verstrekt.

Hieronder een voorbeeldconfiguratie:

Configuratievereisten Waarden
Database Host $DB_SERVICENAME
Database User $DB_USERNAME
Database Password $DB_PASSWORD
Database Name $DB_NAME
Database Port $DB_PORT
SSH Host lb.k8s.shockmedia.host
SSH User $APP_ID
SSH Password Wordt niet gebruikt, alleen het gebruik van ssh keys is toegestaan.
SSH Port 32222

Verbinden met de database middels een SSH tunnel

Om de database op de lokale ontwikkelomgeving te kunnen benaderen zonder databasemanagementsoftware dient er een ssh tunnel te worden opgezet. Vanaf de omgeving waarvan je de tunnel wil opzetten kan dit worden uitgevoerd middels het volgende commando:

ssh -L3306:$DB_SERVICENAME:3306 $APP_ID@lb.k8s.shockmedia.host -p 32222

de poort achter -L is de lokale poort op het werkstation / development omgeving, let erop dat deze niet in gebruik is of kies een andere poort. De tweede 3306 poort is waar MariaDB in de app op luistert. Let op: afsluiten van het terminalvenster sluit ook de tunnel.

wanneer de tunnel is opgezet kan er met de MariaDB server worden verbonden in een nieuwe terminalvenster vanaf het werkstation / development omgeving middels het volgende commando:

mysql -P 3306 -h 127.0.0.1 -u$DB_USERNAME -p

vervolgens zal er om een wachtwoord worden gevraagd, deze en andere database gerelateerde informatie is te vinden in de maintpod in de folder dbcreds. Op deze manier kan er rechtstreeks met de benodigde database worden verbonden. Dit kan handig zijn voor het controleren van wijzigingen of voor het importeren van nieuwe databases.

Een andere manier om dit op te zetten met een controlsocket:

# Opzetten tunnel
ssh -fNMS /tmp/sshtunnel -L3306:$DB_SERVICENAME:$DB_PORT $APP_ID@lb.k8s.shockmedia.host -p 32222

# Afsluiten via control socket
ssh -S /tmp/sshtunnel -O exit lb.k8s.shockmedia.host



Heeft u alles kunnen vinden?

Mocht je nog ergens tegen aan lopen, of mocht er informatie missen op deze pagina, laat het ons dan gerust weten! Wij staan dag en nacht klaar om je verder te helpen, en houden er van om feedback van onze trouwe partners/klanten te horen.