> ## 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.

# Bases de données

> Comment votre projet stocke vos données et comment les parcourir, les modifier et les sauvegarder

Chaque projet Macaly dispose de sa propre base de données. Tout ce que votre site ou votre application doit retenir y est stocké : les messages de votre formulaire de contact, les adresses e-mail des inscriptions à la newsletter, les articles de blog, les demandes de réservation, les comptes utilisateurs, etc.

Vous n'avez pas besoin de créer une base de données chez un fournisseur, de saisir des identifiants ni de connecter quoi que ce soit. Macaly la crée pour vous dès que votre projet en a besoin, et l'onglet **Base de données** de votre [chat](/docs/fr/chat/overview) vous permet de consulter vos données, de les modifier et de les télécharger.

<Callout icon="user">
  Disponible sur tous les forfaits
</Callout>

## Comment fonctionnent les bases de données dans Macaly

Une base de données conserve les informations même après le rechargement de la page, ce qui vous permet d'y revenir à tout moment et de continuer à travailler avec. Imaginez-la comme un tableur qui tourne en arrière-plan de votre projet : chaque **ligne** est un élément, par exemple un abonné, et chaque **colonne** une information, par exemple un e-mail ou une date.

Macaly crée automatiquement une base de données pour chaque projet :

* **Prête à l'emploi** : elle se met à jour en temps réel et évolue automatiquement, sans aucune configuration de votre côté.
* **Isolée par projet** : les données d'un projet ne peuvent jamais se mélanger à celles d'un autre.
* **Hébergée dans l'UE** : vos données sont conservées par Convex dans l'UE (Irlande). Plus d'informations dans l'article [Sécurité](/docs/fr/security/overview).
* **Incluse dans votre forfait** : chaque forfait comprend un quota mensuel dans la limite duquel l'utilisation de la base de données ne consomme aucun crédit. Plus d'informations dans l'article [Forfaits et crédits](/docs/fr/welcome/pricing#utilisation-de-la-base-de-données).

Si votre projet n'a pas encore de base de données, l'onglet Base de données affiche un bouton **Configurer la base de données**. Il suffit aussi de décrire dans le chat ce que vous souhaitez stocker et l'agent s'en charge pour vous.

## La base de données dans le chat

À gauche de l'onglet Base de données, vous trouverez la liste **Tables** avec le nombre de lignes de chacune. Les tables qui appartiennent aux bibliothèques utilisées par votre projet, par exemple celles liées à l'authentification, sont regroupées plus bas et restent repliées jusqu'à ce que vous les ouvriez. Cliquez sur le nom d'une table pour l'ouvrir à droite.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-overview.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=83f7c2afaa12bdc676745735ce6aa892" alt="L'onglet Base de données avec la liste des tables, des données de réservation et les boutons Exporter et Importer" width="2400" height="1674" data-path="images/database-overview.png" />

### Parcourir et filtrer

* **Pagination** : les lignes se chargent par cinquante et s'ajoutent au fur et à mesure que vous faites défiler. Le bouton **Charger plus** en bas ajoute d'autres lignes, et à côté vous voyez combien de lignes contient la table.
* **Tri** : le sélecteur **Plus récents d'abord** et **Plus anciens d'abord** inverse l'ordre.
* **Filtrage** : **Filtrer** permet de restreindre les données. Choisissez un champ, un opérateur et une valeur, puis cliquez sur **Appliquer**. Les opérateurs comprennent égal à, différent de, supérieur à, inférieur à, existe, n'existe pas, ainsi que la correspondance par type. Vous pouvez ajouter plusieurs conditions, elles sont combinées avec « et ». **Effacer les filtres** les supprime.
* **Données en direct** : les lignes que votre application crée pendant que vous regardez la table apparaissent d'elles-mêmes.

Les champs qui pointent vers une autre table s'affichent sous forme de liens. Cliquez dessus pour accéder directement à la ligne concernée.

### Modifier des lignes

Vous pouvez modifier vos données directement dans la table, sans passer par l'agent.

* **Cliquez sur une cellule de texte** pour la modifier sur place. Entrée enregistre la modification, Échap l'annule. Les cases à cocher se changent d'un simple clic.
* **Cliquez sur une ligne** pour ouvrir un formulaire avec un champ par colonne. Vous pouvez saisir des nombres, des dates, des listes et des références, repérer les champs obligatoires et copier le JSON si vous voulez la ligne entière dans votre presse-papiers. Cliquez ensuite sur **Enregistrer**.
* **Ajouter une ligne** crée une nouvelle ligne dans la table ouverte, à partir des champs que Macaly connaît déjà.
* **Cochez une ou plusieurs lignes** pour faire apparaître le bouton **Supprimer**. La case à cocher de l'en-tête sélectionne toute la table. Macaly vous demande confirmation. Une suppression est définitive.

<Note>
  L'onglet Base de données travaille sur les données, pas sur la structure. La création, le renommage et la suppression de tables, ainsi que les changements de champs, font partie du code de votre projet et sont donc gérés par l'agent. Demandez-les dans le chat, par exemple : « Ajoute un champ téléphone à la table des contacts. »
</Note>

### Télécharger et restaurer vos données

En bas de la liste **Tables**, vous trouverez les boutons **Exporter** et **Importer**.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-import-export.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=c82b8b3706c218f42d424bbd5db57d12" alt="Les boutons Exporter et Importer en bas de la liste des tables" width="2400" height="1674" data-path="images/database-import-export.png" />

**Exporter** regroupe votre base de données dans un instantané et la télécharge sous forme de fichier ZIP contenant toutes les tables et toutes les lignes. Utilisez cette option pour conserver votre propre sauvegarde avant des modifications importantes ou travailler avec vos données en dehors de Macaly.

**Importer** restaure un instantané ZIP dans la base de données que vous consultez. Il remplace tout ce qu'elle contient déjà, c'est pourquoi Macaly nomme le fichier choisi et vous demande de confirmer avec **Remplacer et importer**. Cette action est irréversible : exportez d'abord l'état actuel si vous souhaitez pouvoir y revenir. Une fois l'import terminé, Macaly vous indique combien de lignes ont été écrites et recharge l'aperçu. Avant d'appliquer un instantané à des données réelles, vous pouvez l'essayer dans votre base de données de test.

L'export et l'import s'exécutent dans votre navigateur : laissez l'onglet ouvert jusqu'à la fin de l'opération. Sur les grandes bases de données, cela peut prendre un moment.

<Note>
  Les fichiers stockés par votre projet, par exemple les images ou documents téléversés, ne font pas partie de l'instantané. L'instantané ne contient que les données des tables.
</Note>

## Bases de données Live et de test

Par défaut, votre projet utilise une seule base de données **Live**, partagée entre votre site publié et l'aperçu de votre chat. Toute modification effectuée pendant que vous travaillez apparaît immédiatement sur le site publié. En ajoutant une base de données de **test**, vous obtenez une copie séparée dans laquelle travailler sans toucher aux données que voient vos utilisateurs.

<img src="https://mintcdn.com/macaly-41b1d3e9/KswTTJAv5Pjs1EKf/images/database-live-testing.png?fit=max&auto=format&n=KswTTJAv5Pjs1EKf&q=85&s=f6b8015492155557cdef8adf4735eb2c" alt="L'onglet Base de données basculé sur la base de test, avec les boutons Live et Test" width="2400" height="1674" data-path="images/database-live-testing.png" />

### Créer une base de données de test

1. Ouvrez l'onglet **Base de données** dans votre chat.
2. Cliquez sur **Ajouter le mode test**.
3. Attendez la fin de la configuration.

Macaly crée une deuxième base de données et y copie vos données Live.

<Note>
  Si votre app stocke déjà des fichiers importés par ses utilisateurs (voir [Fichiers importés par les utilisateurs](/docs/fr/chat/assets#fichiers-importés-par-les-utilisateurs)), la base de test démarre vide.
</Note>

### Laisser l'agent choisir la base de test

Une fois votre projet publié et alimenté par de vraies données, l'agent vous consulte avant de modifier le backend. Quand une demande touche à la base de données ou aux fonctions serveur, il demande : **Your published app is using Live data. Where should I make these Convex changes?**

* **Develop in Testing** : l'agent crée ou sélectionne votre base de test et y applique les modifications. Vos utilisateurs continuent entre-temps à travailler avec les données Live.
* **Continue on Live** : l'agent modifie l'app publiée et ses données.

Choisissez la base de test quand la modification risque de casser quelque chose dont vos utilisateurs dépendent, par exemple renommer un champ ou refondre un formulaire qui écrit dans la base.

### Basculer d'une base à l'autre

Utilisez les boutons **Live** et **Test** en haut de l'onglet pour passer d'une base de données à l'autre. Le basculement pointe votre projet vers la base sélectionnée et reconstruit l'aperçu : le chat et l'aperçu lisent et modifient celle que vous avez choisie.

Le travail effectué en mode test modifie tout de même le code de votre projet. Lorsque vous revenez à la base Live, Macaly redéploie le schéma et les fonctions, si bien que les changements de structure faits pendant les tests sont repris dans votre projet publié. Les données, elles, restent dans la base de test.

### Publier depuis la base de test

Vous pouvez publier même lorsque la base de test est active. Lorsque vous cliquez sur **Publier**, Macaly envoie votre code vers Live après une vérification de compatibilité, tandis que votre chat et votre aperçu restent sur la base de test. Les données et les secrets de test ne sont jamais copiés vers Live.

La vérification de compatibilité s'assure que vos modifications fonctionnent toujours avec les données que votre app publiée contient déjà. Si ce n'est pas le cas, la fenêtre de publication affiche **Les modifications de la base de données nécessitent une intervention** et propose **Résoudre le problème**. Cliquez dessus : l'agent adapte les modifications pour qu'elles fonctionnent avec vos données Live, puis vous pouvez publier.

La publication s'arrête aussi si le code de l'app la connecte directement à la base de test. La fenêtre de publication affiche alors **L'application est connectée à la base de données de test**. Cliquez sur **Corriger avec l'IA** : l'agent connecte l'app à la base Live, puis vous pouvez publier.

<Note>
  Publier depuis la base de test n'est possible que dans les projets adossés à Git. Dans les autres, la fenêtre de publication affiche **Base de données de test active**, et vous devez cliquer sur **Basculer vers Live** avant de pouvoir publier.
</Note>

## Dupliquer votre propre projet

Lorsque vous dupliquez votre propre chat, la copie obtient une base de données distincte. Macaly copie les données actuelles de la table là où elles sont prises en charge ; les projets plus anciens avec une configuration App Files héritée peuvent démarrer avec une base de données vide et aucun fichier envoyé par les utilisateurs. Un doublon ne restaure pas les données d’un moment antérieur.

Un projet dupliqué depuis la [galerie communautaire](/docs/fr/community/showcase) démarre toujours avec une base de données vide.

## Exemples d'utilisation d'une base de données

Vous utiliserez le plus souvent une base de données pour des fonctionnalités comme celles-ci :

* **Formulaires de contact** : stockez les messages envoyés via votre formulaire de contact ou de demande.
* **Newsletters** : collectez des adresses e-mail et gardez trace de la date d'inscription de chaque personne.
* **Système de gestion de contenu** : créez un système qui contient vos articles de blog, études de cas, avis ou commentaires.
* **Réservations et demandes** : stockez les demandes de rendez-vous et les inscriptions à des événements.
* **Panneaux d'administration** : créez une page interne pour parcourir les formulaires reçus, gérer les abonnés ou modérer le contenu.
* **Notifications** : recevez un e-mail lorsque quelqu'un remplit un formulaire ou qu'une nouvelle inscription arrive dans votre base de données.

Vous n'avez pas à concevoir la structure vous-même. Décrivez ce que vous voulez stocker et l'agent crée la table et l'intègre à votre projet.

**Exemples de prompts :**

```
Ajoute une base de données pour les formulaires de contact reçus,
avec le nom, l'e-mail, le téléphone et le message. Connecte le
formulaire de contact pour que chaque envoi soit enregistré
automatiquement, et envoie-moi une notification par e-mail à chaque
fois.
```

```
Crée une base de données d'articles, avec le titre, la description,
le contenu, l'image et la date de publication, et affiche à partir
d'elle la liste des articles du blog sur le site.
```

## Questions fréquentes

<AccordionGroup>
  <Accordion title="Dois-je configurer une base de données ?">
    Non. Chaque projet Macaly en reçoit une automatiquement. Vous n'avez pas besoin d'en créer une chez un fournisseur, de saisir des identifiants ni de connecter quoi que ce soit. Décrivez ce que vous voulez stocker, par exemple les formulaires de contact reçus ou des articles de blog, et l'agent crée les tables et les intègre à votre projet.
  </Accordion>

  <Accordion title="Quelle base de données utilise Macaly ?">
    Macaly utilise Convex. Chaque projet dispose de sa propre base de données isolée, avec des mises à jour en temps réel et une mise à l'échelle automatique, hébergée dans l'UE. Voir [Bases de données](/docs/fr/features/databases).
  </Accordion>

  <Accordion title="La base de données coûte-t-elle un supplément ?">
    La base de données est incluse dans chaque forfait et, tant que vous restez dans votre quota mensuel, elle ne consomme pas de crédits. Sur les forfaits Starter, Pro et Agences, l'utilisation au-delà du quota est facturée en crédits. Sur Starter, Pro et Agences, chaque tranche supplémentaire entamée de 1 GiB coûte 200K de crédits. Sur Starter, Pro et Agences, chaque tranche supplémentaire de 100 000 appels d'API backend coûte 200K de crédits. Le quota est comptabilisé pour l'ensemble du workspace et se réinitialise au début de chaque mois calendaire. Si vous passez à un forfait supérieur depuis Gratuit ou Hébergement en cours de mois, le quota payant démarre à ce moment-là et l'utilisation antérieure n'est jamais facturée. Vous trouverez le détail dans l'article [Forfaits et crédits](/docs/fr/welcome/pricing#utilisation-de-la-base-de-données).
  </Accordion>

  <Accordion title="Comment consulter et modifier mes données ?">
    L'onglet **Base de données** liste vos tables et affiche les lignes de chacune. Vous pouvez les filtrer et les trier, modifier les valeurs sur place, ajouter des lignes ou les supprimer. La création de tables et les changements de champs font partie du code de votre projet : demandez-les à l'agent, par exemple « Ajoute un champ téléphone à la table des contacts. »
  </Accordion>

  <Accordion title="Puis-je travailler sur des données de test plutôt que sur mes données Live ?">
    Oui. Dans l'onglet **Base de données**, cliquez sur **Ajouter le mode test** et Macaly crée une base de données de **test**, une copie séparée de vos données dans laquelle vous pouvez travailler sans toucher à ce que voient vos utilisateurs. Vous pouvez passer de la base Live à la base de test quand vous le souhaitez, et publier depuis l'une comme depuis l'autre. Une publication depuis la base de test commence par une vérification de compatibilité, pour que votre app publiée continue de fonctionner avec les données qu'elle contient déjà.
  </Accordion>

  <Accordion title="Comment télécharger une copie de mes données ?">
    **Exporter** dans l'onglet **Base de données** télécharge un instantané des données de vos tables sous forme de fichier ZIP, et **Importer** le restaure. Les fichiers stockés par votre projet, par exemple les images téléversées, ne font pas partie de ce fichier. Faites un instantané avant toute modification importante, car la suppression de lignes comme l'import d'un instantané remplacent définitivement les données.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.