Naar hoofdinhoud
Snowflake

Foutmeldingen van de Odoo naar Snowflake-exporter: een case van begin tot eind

Veel meldingen van Flexigo Odoo to Snowflake Snapshot Exporter zeggen in hun eigen tekst wat er ontbreekt: een interval van minstens 15 minuten, een batch tussen 100 en 50000, de privésleutel zonder wachtwoordzin of een eigen schema voor elke export. Hier lopen we ze door in een voorbeeldcase, in de volgorde waarin je ze kunt tegenkomen bij het opzetten van een export, met de letterlijke tekst van de module en wat je met elke melding doet.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 4 november 2026

In het kort

Module
Snowflake
Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de connector, versie 20.0 · in de bronnen onderaan
Leestijd
7 min

Een case om de meldingen door te lopen

Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.

IJzerwaren Rialto (een verzonnen bedrijf) werkt met Odoo en wil met de module een kopie van zijn gegevens naar Snowflake sturen. De beheerder, Marta, maakt de eerste export aan en komt de meldingen een voor een tegen. De exacte volgorde maakt niet uit: het gaat erom wat elke melding zegt en wat zij doet om verder te kunnen. Wil je eerst zien hoe de module is opgebouwd, lees dan het artikel over hoe hij van binnen werkt.

Lijst met Snowflake-exportconfiguraties met vier records, Active aangevinkt en een lege kolom Last Sync
De exportconfiguraties onder Settings › Snowflake Export › Snowflake Export Configurations, met de kolom Last Sync nog leeg.

De Snowflake-sleutel in FlexigoTech Cloud

Marta kiest ervoor de export via FlexigoTech Cloud te laten lopen en plakt de sleutel. De eerste melding is deze:

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

Dit betekent dat een beheerder, voordat de sleutel wordt opgeslagen, moet accepteren dat de Snowflake-sleutel en de geëxporteerde gegevens via FlexigoTech Cloud lopen. De melding maakt duidelijk dat er niets is verstuurd. Wat Marta doet: een beheerder accepteert het en zij slaat opnieuw op.

Bij de tweede poging plakt ze de sleutel zoals ze die had, beveiligd met een wachtwoordzin:

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

De module vraagt om de onversleutelde privésleutel, in PEM-formaat en zonder wachtwoordzin; volgens de melding zelf is het FlexigoTech Cloud die hem versleuteld bewaart. Marta plakt de versie zonder wachtwoordzin.

Een collega had eerder al een testexport via de cloud in dezelfde database gemaakt, en dan verschijnt dit:

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

FlexigoTech Cloud bewaart één Snowflake-sleutel per database en er loopt al een andere export via de cloud. Ook hier is niets verstuurd.

En als ze verder wil zonder dat de sleutel is opgeslagen, houdt de module haar tegen met Save the Snowflake key in FlexigoTech Cloud first.: de sleutel moet eerst in FlexigoTech Cloud worden opgeslagen.

Interval en batchgrootte

Om snel te testen stelt Marta een heel kort interval en een kleine batch in. Ze krijgt twee validatiemeldingen:

  • Cron interval must be at least 15 minutes.: het interval moet 15 minuten of meer zijn.
  • Batch size must be between 100 and 50000.: de batchgrootte moet tussen 100 en 50000 liggen.

Marta past de waarden aan binnen die grenzen en slaat op.

Modellen en velden die niet geëxporteerd kunnen worden

Lijst met Model Lines met vier rijen: configuratie, model, tabel, synchronisatiemodus en Active aangevinkt
De modelregels onder Settings › Snowflake Export › Model Lines, elk met zijn modus, Full refresh of Incremental.

Bij het toevoegen van modellen verschijnen deze meldingen:

  • This model is protected and cannot be exported.: het model is beschermd en de module laat het niet exporteren.
  • Only concrete database-backed models can be exported.: alleen concrete modellen die in de database zijn opgeslagen, kunnen worden geëxporteerd.
  • This model does not have write_date; incremental mode is not supported.: het model heeft geen write_date, dus de incrementele modus wordt niet ondersteund.
  • The model of an export line is chosen with its Model field.: het model van een exportregel kies je met het veld Model.

Bij velden gaat het vergelijkbaar:

  • This field is excluded by default for security.: het veld is standaard uitgesloten om veiligheidsredenen.
  • The field of an export line is chosen with its Field field.: het veld van een exportregel kies je met het veld Field.
Lijst met Field Lines met kolommen voor model, veldnaam, type, opgenomen, kolom, Snowflake-gegevenstype en veiligheidswaarschuwing
De veldregels in Instellingen, met rijen van res.users, res.partner en res.company en hun kolom met veiligheidswaarschuwing.

De eerste synchronisatie

Marta start de synchronisatie en start hem, zonder te wachten, nog een keer:

Sync already in progress for this configuration.

Er loopt al een synchronisatie voor die configuratie, dus ze wacht tot de lopende klaar is.

Daarna dupliceert ze de export voor een ander bedrijf uit de groep, met hetzelfde account, dezelfde database, hetzelfde schema en hetzelfde model:

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.

Een andere export, en gearchiveerde tellen hier ook mee, stuurt naar dezelfde tabel; een volledige refresh zou de rijen daarvan verwijderen. De oplossing is de oplossing uit de melding: een eigen schema voor elke export.

Later geeft een synchronisatie dit terug:

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

De melding noemt het veld dat niet klopt en wat er werd verwacht. De twee oplossingen staan in de tekst zelf: een volledige refresh of Snowflake handmatig bijwerken.

Rondgang langs de lijst met exportconfiguraties, die met Model Lines en die met Field Lines
Van de exportconfiguraties naar de modelregels, terug naar de configuraties en tot slot naar de veldregels.

Wie de export wijzigde en met welke gebruiker gelezen wordt

Maanden later stapt de persoon die de export het laatst had gewijzigd over naar een ander bedrijf uit de groep, en verschijnt deze melding:

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

Degene die de export het laatst wijzigde, hoort niet bij het bedrijf dat de melding noemt. De echte tekst bevat de naam van de persoon en van het bedrijf, dus je weet wie en wat je moet nakijken.

Op een ander moment komt Marta een andere melding tegen, die het niet over bedrijven heeft:

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

Het enige wat die zegt, is dat de export geen actieve gebruiker heeft om de records mee te lezen. De oplossing staat in de tekst zelf: een beheerder moet hem opnieuw opslaan.

Directe verbinding of via de cloud

Marta probeert het verbindingstype van een export te wijzigen en de module staat dat in geen enkele richting toe:

  • A Snowflake export through FlexigoTech Cloud does not go back to a direct connection.: een export die via FlexigoTech Cloud loopt, gaat niet terug naar een directe verbinding.
  • A Snowflake export with a direct connection keeps it: it does not move to FlexigoTech Cloud.: een export met een directe verbinding houdt die en gaat niet over naar FlexigoTech Cloud.

Twee andere meldingen gaan over de Python-connector en authenticatie met een sleutelpaar:

  • Snowflake Python connector not found. Install via: pip install snowflake-connector-python: de Snowflake Python-connector is niet gevonden; de melding geeft het commando om hem te installeren, pip install snowflake-connector-python.
  • Private key path or pasted key content is required for key-pair auth.: authenticatie met een sleutelpaar heeft het pad van de privésleutel of de geplakte sleutelinhoud nodig.

Wat je van deze case leert

  • Lees de hele melding: bij een flink deel ervan is de tweede zin al wat je moet doen.
  • Eindigt de tekst op Nothing was sent., dan vertelt de module je zelf dat er niets is verstuurd.
  • Geef elke export een eigen schema als ze account, database en model delen, en houd ook rekening met gearchiveerde exports.
  • Een model zonder write_date ondersteunt de incrementele modus niet.
  • Het verbindingstype van een export, direct of via FlexigoTech Cloud, kun je achteraf in geen enkele richting meer wijzigen.

Hoe FlexigoTech je helpt

FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Met de verbinding via FlexigoTech Cloud bewaart de dienst de inloggegevens versleuteld, bewaakt hij de synchronisatie en stuurt hij een e-mail als die mislukt. De module kost € 9 per Odoo-versie in Odoo Apps (eenmalige betaling, excl. btw), voor 17, 18, 19 en 20, en het Connector-abonnement kost € 49 per maand of € 490 per jaar excl. btw. Je vindt de details op de modulepagina en op de pagina in Odoo Apps.

Lees verder

Zo werkt Flexigo Odoo to Snowflake Snapshot Exporter in Odoo, term voor termMenu's, de geplande actie die elke 15 minuten draait en de modellen van Flexigo Odoo to Snowflake Snapshot Exporter, uitgelegd als woordenlijst.Je gebruikt Snowflake maar nog geen Odoo: een complete case met de Snapshot ExporterEen voorbeeldcase voor wie al met Snowflake werkt en nog geen Odoo gebruikt: wat Flexigo Odoo to Snowflake Snapshot Exporter exporteert en waar je begint.EU Digital Services Act Compliance Suite in Odoo in gebruik nemen: een case van begin tot eindPraktijkcase voor EU Digital Services Act Compliance Suite in Odoo: belangrijke velden, statussen per record en wat je de eerste week controleert.
Gecontroleerd in de broncode van de connector (versie 20.0) en in de gelinkte bronnen

Bronnen