FIREFLO_DB_URL non défini et FireFlo tourne sur une
configuration fichier, avec les enregistrements d’appel écrits dans data/cdr/.
Seules deux fonctionnalités l’exigent : le balayage d’expiration des CDR, qui a besoin d’interroger
les enregistrements sans résultat, et le crédit prépayé, puisque le crédit ne peut entrer que par
la base. La tarification, le routage au moindre coût et les CDR fonctionnent tous sans elle. Le côté
lecture seule du panneau de contrôle aussi — mais le panneau édite la configuration, et en mode
fichier, il n’a rien à éditer.
Connexion
FIREFLO_CONFIG_IMPORT est séparé de FIREFLO_DB_MIGRATE exprès : l’un applique du DDL en avant
seulement, l’autre remplace les règles qui décident de ce que les clients sont facturés. --dry-run
l’ignore.L’interrupteur de source
Un seul interrupteur déplace chaque domaine à la fois.
Défini via l’environnement comme
FIREFLO_CONFIG_SOURCE.
Les tables
Les propriétés d’un worker sont projetées sur
outSms.instance.<name>.<key> et publiées exactement
comme les lignes app_config, donc le niveau de repli et le retunage en direct sont inchangés.
Gardez un réglage à un endroit ou l’autre — si les deux définissent la même clé, la table de
worker l’emporte et le doublon est journalisé.
Ce qui change quand vous êtes en mode db
- Un changement prend jusqu’à un intervalle de poll, contre environ 200 ms pour une édition de fichier.
- Une lecture échouée conserve la configuration précédente plutôt que de la vider.
- Les changements sont annoncés exactement comme une édition de fichier, donc éditer
app_configretune les workers en marche —tps,maxRetries,pause, TLVs enregistrés — et régleroutSms.instance.<x>.enablesur false arrête ce fournisseur dans l’intervalle. - Supprimer une ligne fait revenir la clé à ce que porte le niveau suivant — une variable d’environnement, ou le défaut codé — plutôt que de la laisser non définie.
- Chaque watcher de fichier se met en retrait.
conf/smsg.propertiesest encore lu au démarrage.
app_route et app_rate du schéma pré-normalisé sont encore lus quand les tables normalisées sont
vides, avec un avertissement. Rien n’est converti automatiquement — le rule_line empaqueté ne peut
pas être découpé en SQL.
Versionnement du schéma
Le schéma est un seul fichier de base,V1.19.0__baseline.sql, généré plutôt que fusionné à la main :
les originaux ont été appliqués à une base d’essai, sauvegardés avec pg_dump --schema-only, et le
dump vérifié en l’appliquant à une seconde base et en diffant les deux. Les changements ultérieurs
continuent à V1.20.0. Forward-only est la règle.
Il est numéroté à la version la plus haute qu’il remplace, pas la plus basse, délibérément. Un
déploiement qui se serait arrêté à mi-chemin traiterait une base numérotée plus bas comme déjà
appliquée et migrerait vers un no-op, en manquant silencieusement ce qui suit. À 1.19.0, il essaie
plutôt d’appliquer et échoue sur la première table qui existe déjà — récupérable, là où la version
silencieuse corrompt par omission.
Voir fireflo db pour test, migrate, info, validate et repair, et
Choisir une source de configuration pour le chemin de
migration entre fichier et base.