Aller au contenu principal
Snowflake

Erreurs de l'exportateur Odoo vers Snowflake : un cas du début à la fin

Beaucoup de messages de Flexigo Odoo to Snowflake Snapshot Exporter indiquent dans leur propre texte ce qui manque : un intervalle d'au moins 15 minutes, un lot entre 100 et 50000, la clé privée sans phrase secrète ou un schéma propre à chaque export. Nous les parcourons ici dans un cas d'exemple, dans l'ordre où vous pourriez les rencontrer en configurant un export, avec le texte exact du module et ce qu'il faut faire pour chacun.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 4 novembre 2026

L'essentiel

Module
Snowflake
Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du connecteur, version 20.0 · dans les sources citées à la fin
Lecture
7 min

Un cas pour parcourir les messages

Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.

Quincaillerie Rialto (entreprise fictive) travaille avec Odoo et veut envoyer une copie de ses données vers Snowflake avec le module. Son administratrice, Marta, crée le premier export et rencontre les messages un par un. L'ordre exact importe peu : ce qui compte, c'est ce que dit chaque message et ce qu'elle fait pour continuer. Si vous préférez d'abord voir comment le module est construit, lisez l'article sur son fonctionnement interne.

Liste des configurations d'export vers Snowflake avec quatre enregistrements, case Active cochée et colonne Last Sync vide
Les configurations d'export dans Settings › Snowflake Export › Snowflake Export Configurations, avec la colonne Last Sync encore vide.

La clé Snowflake dans FlexigoTech Cloud

Marta choisit de faire passer l'export par FlexigoTech Cloud et colle la clé. Le premier message est celui-ci :

Before saving the key, an administrator has to accept that the Snowflake key and the exported data go through FlexigoTech Cloud. Nothing was sent.

Cela signifie qu'avant d'enregistrer la clé, un administrateur doit accepter que la clé Snowflake et les données exportées passent par FlexigoTech Cloud. Le message précise bien que rien n'a été envoyé. Ce que fait Marta : un administrateur accepte, puis elle enregistre à nouveau.

Au deuxième essai, elle colle la clé telle qu'elle l'avait, protégée par une phrase secrète :

Paste the unencrypted private key (PEM, without a passphrase): FlexigoTech Cloud keeps it encrypted. Nothing was sent.

Le module demande la clé privée non chiffrée, au format PEM et sans phrase secrète ; d'après le message lui-même, c'est FlexigoTech Cloud qui la conserve chiffrée. Marta colle la version sans phrase secrète.

Un collègue avait déjà créé un export de test via le cloud dans la même base de données, et voici ce qui s'affiche :

Another Snowflake export of this database already goes through FlexigoTech Cloud, which holds one Snowflake key per database. Nothing was sent.

FlexigoTech Cloud conserve une seule clé Snowflake par base de données, et un autre export passe déjà par le cloud. Là non plus, rien n'a été envoyé.

Et si elle essaie de continuer sans avoir enregistré la clé, le module l'arrête avec Save the Snowflake key in FlexigoTech Cloud first. : il faut d'abord enregistrer la clé dans FlexigoTech Cloud.

Fréquence et taille de lot

Pour tester rapidement, Marta saisit un intervalle très court et un petit lot. Elle obtient deux messages de validation :

  • Cron interval must be at least 15 minutes. : l'intervalle doit être de 15 minutes ou plus.
  • Batch size must be between 100 and 50000. : la taille de lot doit être comprise entre 100 et 50000.

Marta ajuste les valeurs dans ces limites et enregistre.

Modèles et champs qui ne peuvent pas être exportés

Liste des Model Lines avec quatre lignes : configuration, modèle, table, mode de synchronisation et case Active cochée
Les lignes de modèle dans Settings › Snowflake Export › Model Lines, chacune avec son mode, Full refresh ou Incremental.

En ajoutant des modèles, ces messages apparaissent :

  • This model is protected and cannot be exported. : le modèle est protégé et le module ne permet pas de l'exporter.
  • Only concrete database-backed models can be exported. : seuls les modèles concrets adossés à la base de données peuvent être exportés.
  • This model does not have write_date; incremental mode is not supported. : le modèle n'a pas de write_date, il ne prend donc pas en charge le mode incrémental.
  • The model of an export line is chosen with its Model field. : le modèle d'une ligne d'export se choisit avec son champ Model.

Il en va de même pour les champs :

  • This field is excluded by default for security. : le champ est exclu par défaut pour des raisons de sécurité.
  • The field of an export line is chosen with its Field field. : le champ d'une ligne d'export se choisit avec son champ Field.
Liste des Field Lines avec les colonnes modèle, nom du champ, type, inclus, colonne, type de donnée Snowflake et avertissement de sécurité
Les lignes de champ dans les Paramètres, avec des lignes de res.users, res.partner et res.company et leur colonne d'avertissement de sécurité.

La première synchronisation

Marta lance la synchronisation et, sans attendre, la relance :

Sync already in progress for this configuration.

Une synchronisation est déjà en cours pour cette configuration : elle attend donc que celle en cours se termine.

Ensuite, elle duplique l'export pour une autre société du groupe, avec le même compte, la même base de données, le même schéma et le même modèle :

Another export, archived ones too, sends to this Snowflake table (same account, database, schema and model): a full refresh would delete its rows. Give each export a schema of its own.

Un autre export, et les exports archivés comptent aussi, envoie vers cette même table ; un rafraîchissement complet supprimerait ses lignes. La solution est celle qu'indique le message : un schéma propre à chaque export.

Plus tard, une synchronisation renvoie :

Schema mismatch for field %s: expected %s. Run a full refresh or update Snowflake manually. %s

Le message indique le champ qui ne correspond pas et ce qui était attendu. Les deux solutions sont celles du texte : un rafraîchissement complet ou une mise à jour manuelle de Snowflake.

Parcours de la liste des configurations d'export, de celle des Model Lines et de celle des Field Lines
Des configurations d'export aux lignes de modèle, retour aux configurations puis, pour finir, aux lignes de champ.

Qui a modifié l'export et avec quel utilisateur les données sont lues

Des mois plus tard, la personne qui avait modifié l'export en dernier passe dans une autre société du groupe, et ce message apparaît :

%(user)s, who last changed this export, does not belong to %(company)s.

La personne qui a modifié l'export en dernier n'appartient pas à la société indiquée dans le message. Le texte réel contient le nom de la personne et celui de la société : vous savez donc qui et quoi vérifier.

Une autre fois, Marta tombe sur un message différent, qui ne parle pas de sociétés :

This export has no active user to read the records with: an administrator has to save it again.

Il dit seulement que l'export n'a pas d'utilisateur actif pour lire les enregistrements. La solution est celle du texte : un administrateur doit l'enregistrer à nouveau.

Connexion directe ou via le cloud

Marta essaie de changer le type de connexion d'un export, et le module refuse dans les deux sens :

  • A Snowflake export through FlexigoTech Cloud does not go back to a direct connection. : un export qui passe par FlexigoTech Cloud ne revient pas à une connexion directe.
  • A Snowflake export with a direct connection keeps it: it does not move to FlexigoTech Cloud. : un export en connexion directe la conserve et ne passe pas à FlexigoTech Cloud.

Deux autres messages concernent le connecteur Python et l'authentification par paire de clés :

  • Snowflake Python connector not found. Install via: pip install snowflake-connector-python : le connecteur Python de Snowflake est introuvable ; le message donne la commande pour l'installer, pip install snowflake-connector-python.
  • Private key path or pasted key content is required for key-pair auth. : l'authentification par paire de clés nécessite le chemin de la clé privée ou le contenu de la clé collé.

Ce qu'il faut retenir du cas

  • Lisez le message en entier : dans bon nombre d'entre eux, la deuxième phrase indique déjà ce que vous devez faire.
  • Quand le texte se termine par Nothing was sent., le module lui-même vous dit que rien n'a été envoyé.
  • Donnez à chaque export son propre schéma s'ils partagent compte, base de données et modèle, et pensez aussi aux exports archivés.
  • Un modèle sans write_date ne prend pas en charge le mode incrémental.
  • Le type de connexion d'un export, directe ou via FlexigoTech Cloud, ne se change pas ensuite, dans aucun sens.

Comment FlexigoTech vous aide

FlexigoTech déploie Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Avec la connexion via FlexigoTech Cloud, le service conserve les identifiants chiffrés, surveille la synchronisation et prévient par e-mail en cas d'échec. Le module coûte 9 € par version d'Odoo sur Odoo Apps (paiement unique, HT), pour 17, 18, 19 et 20, et le plan Connecteur est à 49 €/mois ou 490 €/an HT. Vous trouverez les détails sur la page du module et sur sa fiche Odoo Apps.

À lire aussi

Comment fonctionne Flexigo Odoo to Snowflake Snapshot Exporter dans Odoo, terme par termeMenus, action planifiée toutes les 15 minutes et modèles de Flexigo Odoo to Snowflake Snapshot Exporter, expliqués sous forme de glossaire.Vous utilisez Snowflake mais pas encore Odoo : un cas complet avec le Snapshot ExporterCas illustratif pour ceux qui utilisent déjà Snowflake sans Odoo : ce qu'exporte Flexigo Odoo to Snowflake Snapshot Exporter et par où commencer.Mise en place d'EU Digital Services Act Compliance Suite dans Odoo : un cas de bout en boutCas pratique pour mettre en place EU Digital Services Act Compliance Suite dans Odoo : champs clés, états des enregistrements et contrôles de la première semaine.
Vérifié dans le code du connecteur (version 20.0) et dans les sources citées

Sources