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

# Bases de données

> Instances Postgres dédiées pour vos apps.

Chaque base de données est une instance Postgres dédiée, isolée, avec scale-to-zero et connexions en pool ou directes. Demandez à l'IA d'en créer une et elle gère la configuration et les identifiants.

## Créer une base de données

Décrivez à l'IA ce dont l'app a besoin. Elle doit d'abord lister les bases existantes et réutiliser une base active appropriée si elle existe. Elle crée une nouvelle instance Postgres uniquement si vous demandez l'isolation ou qu'aucune base existante ne convient.

## Identifiants

Les identifiants de base de données sont gérés via le [vault](/work/vault).

* **Afficher les identifiants** - retourne les URIs de connexion actuels pour la base de données.
* **Régénérer les identifiants** - réinitialise le mot de passe de la base et crée de nouveaux secrets vault. À utiliser quand les identifiants manquent, sont compromis ou doivent être renouvelés. Les anciens identifiants cessent de fonctionner immédiatement.

### Utiliser les identifiants dans une app

Pour les apps générées, l'IA connecte les identifiants de base au composant process avec l'outil `db`. Le code de l'app lit les variables d'env normales comme `DATABASE_URL` et `DIRECT_DATABASE_URL`.

Pour les commandes locales manuelles, exécutez via la CLI Kazzle avec la bonne collection et l'environnement :

```json theme={"theme":"material-theme-darker"}
{
  "scripts": {
    "dev": "kazzle run --collection=my-saas --env=dev -- bun run server.ts"
  }
}
```

Ne mettez pas les URLs de base de données dans le code frontend ou les variables `VITE_*`.

## Migrations

Les changements de schéma vont dans des fichiers SQL du repo de l'app (ex. `migrations/001_create_todos.sql`). Kazzle peut exécuter ces migrations dans le flux de déploiement de votre app. Si la sync temps réel est activée, l'IA met aussi à jour la configuration de sync associée.

## Activer la sync temps réel

Demandez à l'IA d'activer la sync sur une base de données. Elle doit attendre que la base affiche `sync: ready` avant de connecter une app temps réel. Voir [Sync temps réel](/apps/sync) pour comprendre le fonctionnement.

## Supprimer une base de données

Demandez à l'IA de supprimer une base de données. Kazzle la marque comme supprimée d'abord, et la base peut être restaurée avant le nettoyage permanent.

## Exemple : configurer une base de données de zéro

1. "Crée une base de données appelée my-app-db"
2. L'IA réutilise une base appropriée ou configure Postgres et stocke les identifiants dans le vault
3. "Crée une table todos avec id, text, done et created\_at"
4. L'IA exécute le SQL
5. "Connecte-la à mon app" - l'IA relie la base au composant process de l'app

Pour les apps temps réel avec support hors ligne, l'IA active aussi la sync et configure le schéma côté client. Voir [construire une app temps réel](/apps/build-and-publish) pour le flux complet.
