> ## Documentation Index
> Fetch the complete documentation index at: https://www.macaly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Databases

> Hoe uw project gegevens opslaat en hoe u ze kunt bekijken, bewerken en back-uppen

Elk Macaly-project heeft zijn eigen database. Alles wat uw site of app moet onthouden komt daarin terecht: berichten uit uw contactformulier, e-mailadressen van nieuwsbriefaanmeldingen, blogartikelen, reserveringsaanvragen, gebruikersaccounts enzovoort.

U hoeft geen database aan te maken bij een provider, geen inloggegevens in te voeren en niets te koppelen. Macaly maakt er een voor u zodra uw project er een nodig heeft, en op het tabblad **Database** in uw [chat](/docs/nl/chat/overview) bekijkt, bewerkt en downloadt u die gegevens.

<Callout icon="user">
  Beschikbaar in alle pakketten
</Callout>

## Hoe databases werken in Macaly

Een database bewaart informatie ook na het herladen van de pagina, zodat u er altijd naar terug kunt keren en ermee verder kunt werken. Zie het als een spreadsheet die achter uw project draait: elke **rij** is één item, bijvoorbeeld één abonnee, en elke **kolom** is één gegeven, bijvoorbeeld een e-mailadres of een datum.

Macaly maakt automatisch een database voor elk project:

* **Klaar voor gebruik**: hij werkt in real time bij en schaalt vanzelf mee, zonder dat u iets hoeft in te stellen.
* **Gescheiden per project**: gegevens van het ene project kunnen nooit vermengd raken met die van een ander.
* **Gehost in de EU**: uw gegevens staan bij Convex in de EU (Ierland). Meer informatie vindt u in het artikel [Beveiliging](/docs/nl/security/overview).
* **Inbegrepen in uw pakket**: elk pakket heeft een maandelijkse limiet waarbinnen het gebruik van de database geen credits kost. Meer informatie vindt u in het artikel [Pakketten en credits](/docs/nl/welcome/pricing#databasegebruik).

Heeft uw project nog geen database, dan toont het tabblad Database de knop **Database instellen**. U kunt ook gewoon in de chat beschrijven wat u wilt opslaan, dan maakt de agent hem zelf voor u aan.

## De database in de chat

Links op het tabblad Database vindt u de lijst **Tabellen** met bij elke tabel het huidige aantal rijen. Tabellen die horen bij bibliotheken die uw project gebruikt, bijvoorbeeld tabellen rond authenticatie, staan lager gegroepeerd en blijven ingeklapt tot u ze opent. Klik op de naam van een tabel om die rechts te openen.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-overview.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=83f7c2afaa12bdc676745735ce6aa892" alt="Het tabblad Database met de lijst met tabellen, reserveringsgegevens en de knoppen Exporteren en Importeren" width="2400" height="1674" data-path="images/database-overview.png" />

### Bekijken en filteren

* **Paginering**: rijen worden per vijftig geladen en komen erbij terwijl u naar beneden scrolt. De knop **Meer laden** onderaan voegt meer rijen toe, en ernaast ziet u hoeveel rijen de tabel bevat.
* **Sorteren**: de schakelaar **Nieuwste eerst** en **Oudste eerst** keert de volgorde om.
* **Filteren**: met **Filter** beperkt u de gegevens. Kies een veld, een operator en een waarde en klik op **Toepassen**. De operatoren omvatten is gelijk aan, is niet gelijk aan, groter dan, kleiner dan, bestaat, bestaat niet en overeenkomst op type. U kunt meerdere voorwaarden toevoegen, ze worden gecombineerd met "en". **Filters wissen** verwijdert ze weer.
* **Live gegevens**: rijen die uw app aanmaakt terwijl u naar de tabel kijkt, verschijnen vanzelf.

Velden die naar een andere tabel verwijzen, worden als links weergegeven. Klik erop om direct naar de betreffende rij te gaan.

### Rijen bewerken

U kunt gegevens rechtstreeks in de tabel wijzigen, zonder de agent.

* **Klik op een tekstcel** om die meteen te bewerken. Enter slaat de wijziging op, Escape annuleert hem. Selectievakjes zet u met één klik om.
* **Klik op een rij** om een formulier te openen met één veld per kolom. U kunt getallen, datums, lijsten en verwijzingen invoeren, zien welke velden verplicht zijn en de JSON kopiëren als u de hele rij op uw klembord wilt. Klik daarna op **Opslaan**.
* **Rij toevoegen** maakt een nieuwe rij aan in de geopende tabel, op basis van de velden die Macaly al kent.
* **Vink één of meer rijen aan** om de knop **Verwijderen** te laten verschijnen. Het selectievakje in de kopregel selecteert de hele tabel. Macaly vraagt u om bevestiging. Verwijderen kan niet ongedaan worden gemaakt.

<Note>
  Het tabblad Database werkt met gegevens, niet met de structuur. Tabellen aanmaken, hernoemen en verwijderen en velden wijzigen horen bij de code van uw project en worden daarom door de agent gedaan. Vraag erom in de chat, bijvoorbeeld: "Voeg een veld telefoon toe aan de tabel met contacten."
</Note>

### Gegevens downloaden en herstellen

Onderaan de lijst **Tabellen** vindt u de knoppen **Exporteren** en **Importeren**.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-import-export.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=c82b8b3706c218f42d424bbd5db57d12" alt="De knoppen Exporteren en Importeren onderaan de lijst met tabellen" width="2400" height="1674" data-path="images/database-import-export.png" />

**Exporteren** bundelt uw database in een snapshot en downloadt die als ZIP-bestand met alle tabellen en alle rijen. Gebruik dit wanneer u een eigen back-up wilt maken vóór grotere wijzigingen of met uw gegevens buiten Macaly wilt werken.

**Importeren** zet een snapshot uit een ZIP-bestand terug in de database die u op dat moment bekijkt. Alles wat er al in staat wordt overschreven, dus Macaly noemt het gekozen bestand en vraagt u te bevestigen met **Vervangen en importeren**. Dit kan niet ongedaan worden gemaakt, dus exporteer eerst de huidige stand voor het geval u die terug wilt. Als het importeren klaar is, laat Macaly weten hoeveel rijen zijn weggeschreven en laadt het de preview opnieuw. Voordat u een snapshot op echte gegevens loslaat, kunt u hem uitproberen in uw testdatabase.

Exporteren en importeren draaien in uw browser, dus laat het tabblad open tot de actie klaar is. Bij grote databases kan dat even duren.

<Note>
  Bestanden die uw project opslaat, bijvoorbeeld geüploade afbeeldingen of documenten, horen niet bij de snapshot. De snapshot bevat alleen de gegevens uit de tabellen.
</Note>

## Live en testdatabases

Standaard gebruikt uw project één **Live** database, gedeeld door uw gepubliceerde site en de preview in uw chat. Elke wijziging die u tijdens het bouwen maakt, verschijnt meteen op de gepubliceerde site. Door een **test**database toe te voegen ontstaat een aparte kopie waarin u kunt werken zonder de gegevens te wijzigen die uw gebruikers zien.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-live-testing.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=f6b8015492155557cdef8adf4735eb2c" alt="Het tabblad Database omgeschakeld naar de testdatabase, met de knoppen Live en Testen" width="2400" height="1674" data-path="images/database-live-testing.png" />

### Een testdatabase aanmaken

1. Open het tabblad **Database** in uw chat.
2. Klik op **Testmodus toevoegen**.
3. Wacht tot het instellen klaar is.

Macaly maakt een tweede database aan en kopieert uw Live gegevens daarin.

<Note>
  Slaat uw app al bestanden op die door haar gebruikers zijn geüpload (zie [Uploads van appgebruikers](/docs/nl/chat/assets#uploads-van-appgebruikers)), dan begint de testdatabase leeg.
</Note>

### De agent zelf om de testdatabase laten vragen

Zodra uw project gepubliceerd is en echte gegevens bevat, overlegt de agent met u voordat hij de backend wijzigt. Raakt een verzoek de database of de serverfuncties, dan vraagt hij: **Your published app is using Live data. Where should I make these Convex changes?**

* **Develop in Testing**: De agent maakt of kiest uw testdatabase en voert de wijzigingen daar door. Uw gebruikers werken ondertussen gewoon met de Live gegevens.
* **Continue on Live**: De agent wijzigt de gepubliceerde app en de bijbehorende gegevens.

Kies de testdatabase wanneer de wijziging iets kan breken waarop uw gebruikers rekenen, zoals het hernoemen van een veld of het herbouwen van een formulier dat naar de database schrijft.

### Wisselen tussen databases

Gebruik de knoppen **Live** en **Testen** boven aan het tabblad om tussen beide databases te wisselen. Bij het wisselen wijst Macaly uw project naar de gekozen database en laadt het de preview opnieuw, zodat de chat en de preview lezen en schrijven in de database die u hebt gekozen.

Werk dat u in de testdatabase doet, verandert nog steeds de code van uw project. Wanneer u terugschakelt naar de Live database, zet Macaly het schema en de functies opnieuw uit, zodat structuurwijzigingen uit het testen meegaan naar uw gepubliceerde project. De gegevens zelf blijven in de testdatabase achter.

### Publiceren vanuit de testdatabase

U kunt ook publiceren terwijl de testdatabase actief is. Klik op **Publiceren** en het menu toont de melding **Testdatabase actief**: publiceren brengt uw code na een compatibiliteitscontrole naar Live, terwijl uw chat en preview in de testdatabase blijven. Testgegevens en secrets gaan nooit mee naar Live.

De compatibiliteitscontrole kijkt of uw wijzigingen nog werken met de gegevens die uw gepubliceerde app al bevat. Is dat niet zo, dan blokkeert Macaly het publiceren met **Convex-wijziging kan niet veilig worden gepubliceerd** en biedt het **Vraag agent om compatibel te maken** aan. Klikt u daarop, dan past de agent de wijzigingen aan uw Live gegevens aan en kunt u opnieuw publiceren.

<Note>
  Publiceren vanuit de testdatabase kan alleen in projecten met Git. In andere projecten blijft de knop Publiceren grijs tot u op **Overschakelen naar Live** klikt.
</Note>

## Uw eigen project dupliceren

Wanneer u uw eigen chat dupliceert, kiest u wat er met de gegevens moet gebeuren:

* **Nieuwe database maken**: er wordt een nieuwe database aangemaakt en de gegevens uit de originele database worden erin gekopieerd. Schemawijzigingen in de ene chat hebben geen invloed op de andere chat. Slaat het origineel bestanden op die zijn geüpload door zijn gebruikers, dan begint de nieuwe database leeg.
* **Dezelfde database gebruiken**: beide chats werken met dezelfde database, dus wijzigingen in gegevens of schema in de ene chat ziet u ook in de andere. Deze optie is alleen beschikbaar als u binnen dezelfde workspace dupliceert.

Deze keuzes gelden alleen voor uw eigen duplicaten. Een project dat vanuit de [community-galerij](/docs/nl/community/showcase) is gedupliceerd, begint altijd met een lege database.

## Voorbeelden van databasegebruik

Meestal gebruikt u een database voor functies als deze:

* **Contactformulieren**: sla de berichten op die mensen via uw contact- of aanvraagformulier sturen.
* **Nieuwsbrieven**: verzamel e-mailadressen en houd bij wanneer iemand zich heeft aangemeld.
* **Contentbeheer**: bouw een systeem dat uw blogartikelen, praktijkvoorbeelden, reviews of reacties bevat.
* **Reserveringen en aanvragen**: sla afspraakaanvragen en inschrijvingen voor evenementen op.
* **Adminpanelen**: bouw een interne pagina om ontvangen formulieren te bekijken, abonnees te beheren of content te modereren.
* **Notificaties**: ontvang een e-mail wanneer iemand een formulier invult of er een nieuwe inschrijving in uw database bij komt.

U hoeft de structuur niet zelf te bedenken. Beschrijf wat u wilt opslaan en de agent maakt de tabel aan en koppelt hem in uw project.

**Voorbeeldprompts:**

```
Voeg een database toe voor ontvangen contactformulieren, met naam,
e-mail, telefoon en bericht. Koppel het contactformulier zodat elke
inzending automatisch wordt opgeslagen, en stuur me elke keer een
notificatie per e-mail.
```

```
Maak een database met artikelen, met titel, beschrijving, inhoud,
afbeelding en publicatiedatum, en toon daaruit een lijst met
blogartikelen op de site.
```

## Veelgestelde vragen

<AccordionGroup>
  <Accordion title="Moet ik een database instellen?">
    Nee. Elk Macaly-project krijgt er automatisch een. U hoeft er geen aan te maken bij een provider, geen inloggegevens in te voeren en niets te koppelen. Beschrijf wat u wilt opslaan, bijvoorbeeld ontvangen contactformulieren of blogartikelen, en de agent maakt de tabellen aan en koppelt ze in uw project.
  </Accordion>

  <Accordion title="Welke database gebruikt Macaly?">
    Macaly gebruikt Convex. Elk project heeft zijn eigen gescheiden database met updates in real time en automatisch meeschalen, gehost in de EU. Zie [Databases](/docs/nl/features/databases).
  </Accordion>

  <Accordion title="Kost de database extra?">
    De database is inbegrepen in elk pakket en zolang u binnen uw maandelijkse limiet blijft, kost het gebruik ervan geen credits. Bij de pakketten Pro en Bureaus wordt gebruik boven de limiet in credits afgerekend: elke volgende 10 GB kost 2M credits en elke volgende 100.000 backend-API-aanroepen kosten 200K credits. De limiet geldt voor uw hele workspace en begint aan het begin van elke kalendermaand opnieuw. De details vindt u in het artikel [Pakketten en credits](/docs/nl/welcome/pricing#databasegebruik).
  </Accordion>

  <Accordion title="Hoe bekijk en bewerk ik mijn gegevens?">
    Het tabblad **Database** toont uw tabellen en de rijen in elke tabel. U kunt ze filteren en sorteren, waarden meteen bewerken, rijen toevoegen of verwijderen. Tabellen aanmaken en velden wijzigen horen bij de code van uw project, dus vraag daarom aan de agent, bijvoorbeeld: "Voeg een veld telefoon toe aan de tabel met contacten."
  </Accordion>

  <Accordion title="Kan ik met testgegevens werken in plaats van met mijn Live gegevens?">
    Ja. Klik op het tabblad **Database** op **Testmodus toevoegen**, dan maakt Macaly een **test**database aan: een aparte kopie van uw gegevens waarin u kunt werken zonder te wijzigen wat uw gebruikers zien. U kunt wisselen tussen uw Live database en uw testdatabase wanneer u wilt, en vanuit beide publiceren. Publiceren vanuit de testdatabase begint met een compatibiliteitscontrole, zodat uw gepubliceerde app blijft werken met de gegevens die er al zijn.
  </Accordion>

  <Accordion title="Hoe download ik een kopie van mijn gegevens?">
    **Exporteren** op het tabblad **Database** downloadt een snapshot van uw tabelgegevens als ZIP-bestand, en **Importeren** zet er een terug. Bestanden die uw project opslaat, bijvoorbeeld geüploade afbeeldingen, horen niet bij dat bestand. Maak een snapshot vóór grotere wijzigingen, want zowel het verwijderen van rijen als het importeren van een snapshot overschrijft gegevens definitief.
  </Accordion>
</AccordionGroup>
