DATABASE_URL.
SQLite vs PostgreSQL
Limitation connue : Streaming concurrent SQLite
Configuration du pool de connexions
FIM One configure les paramètres du pool de connexions SQLAlchemy en interne pour chaque backend. Ce sont des valeurs par défaut optimisées qui ne nécessitent pas de variables d’environnement — elles sont appliquées automatiquement en fonction du schémaDATABASE_URL. Les comprendre aide à expliquer le comportement à l’exécution.
Paramètres du pool SQLite
Le mode WAL et le délai d’attente de 30 secondes sont définis via les PRAGMAs SQLite sur chaque nouvelle connexion. Cette combinaison garantit que les lectures de courte durée (chargement d’une liste de conversations, récupération des paramètres) ne sont pas bloquées par les transactions d’écriture longue durée, et que les écritures concurrentes s’ajoutent à la file d’attente correctement au lieu d’échouer.
Paramètres du pool PostgreSQL
PostgreSQL gère la concurrence nativement via MVCC, donc les paramètres du pool contrôlent principalement l’utilisation des ressources plutôt que la contention. L’intervalle de recyclage de 30 minutes évite les problèmes avec les pare-feu, les équilibreurs de charge ou les services de base de données gérés qui ferment silencieusement les connexions TCP inactives.
Passage à PostgreSQL
Étape 1 : Démarrer une instance PostgreSQL
Le moyen le plus rapide est d’utiliser Docker :Étape 2 : Définir DATABASE_URL
Ajoutez ou mettez à jour la ligne suivante dans votre fichier.env :
Étape 3 : Redémarrer FIM One
Les données SQLite existantes ne sont pas migrées automatiquement. Le changement de
DATABASE_URL de SQLite à PostgreSQL commence avec une base de données vierge. Si vous avez des conversations, agents ou connecteurs existants dans SQLite que vous devez conserver, consultez la section Migration de données ci-dessous.Docker Compose (Recommandé pour la production)
Si vous déployez avec Docker Compose, PostgreSQL et Redis sont déjà inclus et configurés automatiquement — il n’y a rien d’extra à configurer. Ledocker-compose.yml définit DATABASE_URL en interne — votre valeur .env est remplacée :
Migration de données
Il n’existe pas d’outil de migration intégré de SQLite vers PostgreSQL. Pour la plupart des déploiements, l’approche recommandée dépend de votre situation : Déploiement nouveau (pas de données existantes) : Définissez simplementDATABASE_URL sur votre chaîne de connexion PostgreSQL et démarrez FIM One. Toutes les tables sont créées automatiquement.
Données existantes qui doivent être conservées : Une export/import manuelle est requise. L’approche générale :
- Exportez les données de SQLite en utilisant un outil comme l’interface de ligne de commande
sqlite3ou un script Python - Transformez les données selon les besoins (SQLite et PostgreSQL ont des différences de type mineures)
- Importez dans PostgreSQL en utilisant
psql,pg_restore, ou des scripts d’insertion au niveau de l’application