Salta al contingut principal
Snowflake

Errors de l'exportador d'Odoo a Snowflake: un cas de principi a fi

Molts missatges de Flexigo Odoo to Snowflake Snapshot Exporter diuen en el seu propi text què falta: un interval d'almenys 15 minuts, un lot entre 100 i 50000, la clau privada sense frase de pas o un esquema propi per a cada exportació. Aquí els repassem en un cas d'exemple, en l'ordre en què te'ls podries trobar en muntar una exportació, amb el text literal del mòdul i què fer amb cadascun.

FlexigoTech · Responsable: Víctor Gómez · Actualitzat el 4 de novembre de 2026

L'essencial

Mòdul
Snowflake
Versions
Odoo 17, 18, 19 i 20
Comprovat
al codi del connector, versió 20.0 · a les fonts enllaçades al final
Lectura
7 min

Un cas per repassar els missatges

Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.

Ferreteria Rialto (empresa inventada) treballa amb Odoo i vol portar una còpia de les seves dades a Snowflake amb el mòdul. La seva administradora, la Marta, crea la primera exportació i es va trobant els avisos un per un. L'ordre exacte no importa: el que compta és què diu cada missatge i què fa ella per continuar. Si abans vols veure com està muntat el mòdul, tens l'article sobre com funciona per dins.

Llista de configuracions d'exportació a Snowflake amb quatre registres, casella Active marcada i columna Last Sync buida
Les configuracions d'exportació a Settings › Snowflake Export › Snowflake Export Configurations, amb la columna Last Sync encara buida.

La clau de Snowflake a FlexigoTech Cloud

La Marta tria que l'exportació passi per FlexigoTech Cloud i enganxa la clau. El primer avís és aquest:

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

Vol dir que, abans de desar la clau, un administrador ha d'acceptar que la clau de Snowflake i les dades exportades passen per FlexigoTech Cloud. El missatge deixa clar que no s'ha enviat res. Què fa la Marta: un administrador ho accepta i ella torna a desar.

En el segon intent enganxa la clau tal com la tenia, protegida amb frase de pas:

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

El mòdul demana la clau privada sense xifrar, en format PEM i sense frase de pas; segons el mateix missatge, és FlexigoTech Cloud qui la guarda xifrada. La Marta enganxa la versió sense frase de pas.

Un company havia creat abans una altra exportació de prova pel núvol a la mateixa base de dades, i surt això:

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

FlexigoTech Cloud guarda una sola clau de Snowflake per base de dades i una altra exportació ja va pel núvol. Tampoc aquí no s'ha enviat res.

I si intenta continuar sense tenir la clau desada, el mòdul l'atura amb Save the Snowflake key in FlexigoTech Cloud first.: primer cal desar la clau a FlexigoTech Cloud.

Freqüència i mida de lot

Per provar ràpid, la Marta posa un interval molt curt i un lot petit. Li surten dos avisos de validació:

  • Cron interval must be at least 15 minutes.: l'interval ha de ser de 15 minuts o més.
  • Batch size must be between 100 and 50000.: la mida de lot ha d'estar entre 100 i 50000.

La Marta ajusta els valors a aquests marges i desa.

Models i camps que no es deixen exportar

Llista de Model Lines amb quatre files: configuració, model, taula, mode de sincronització i casella Active marcada
Les línies de model a Settings › Snowflake Export › Model Lines, cadascuna amb el seu mode, Full refresh o Incremental.

En afegir models apareixen aquests missatges:

  • This model is protected and cannot be exported.: el model està protegit i el mòdul no deixa exportar-lo.
  • Only concrete database-backed models can be exported.: només s'exporten models concrets recolzats per la base de dades.
  • This model does not have write_date; incremental mode is not supported.: el model no té write_date, així que no admet el mode incremental.
  • The model of an export line is chosen with its Model field.: el model d'una línia d'exportació es tria amb el seu camp Model.

Amb els camps passa una cosa semblant:

  • This field is excluded by default for security.: el camp queda exclòs per defecte per seguretat.
  • The field of an export line is chosen with its Field field.: el camp d'una línia d'exportació es tria amb el seu camp Field.
Llista de Field Lines amb columnes de model, nom de camp, tipus, inclòs, columna, tipus de dada Snowflake i avís de seguretat
Les línies de camp a Configuració, amb files de res.users, res.partner i res.company i la seva columna d'avís de seguretat.

La primera sincronització

La Marta llança la sincronització i, sense esperar, la torna a llançar:

Sync already in progress for this configuration.

Ja hi ha una sincronització en curs per a aquesta configuració, així que espera que acabi la que està en marxa.

Després duplica l'exportació per a una altra empresa del grup, amb el mateix compte, base de dades, esquema i 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.

Una altra exportació, i aquí també compten les arxivades, envia a aquesta mateixa taula; un refresc complet n'esborraria les files. La sortida és la que dona el missatge: un esquema propi per a cada exportació.

Més endavant, una sincronització retorna:

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

El missatge indica el camp que no quadra i el que s'esperava. Les dues sortides són les del mateix text: un refresc complet o actualitzar Snowflake a mà.

Recorregut per la llista de configuracions d'exportació, la de Model Lines i la de Field Lines
De les configuracions d'exportació a les línies de model, de tornada a les configuracions i, per acabar, a les línies de camp.

Qui va canviar l'exportació i amb quin usuari es llegeix

Mesos després, la persona que havia canviat l'exportació per última vegada passa a una altra empresa del grup, i surt aquest avís:

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

Qui va canviar l'exportació per última vegada no pertany a l'empresa que indica el missatge. El text real porta el nom de la persona i el de l'empresa, així que saps a qui i què has de mirar.

En un altre moment, la Marta es troba amb un missatge diferent, que no parla d'empreses:

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

L'únic que diu és que l'exportació no té cap usuari actiu amb què llegir els registres. La sortida és la del mateix text: un administrador l'ha de tornar a desar.

Connexió directa o pel núvol

La Marta prova de canviar el tipus de connexió d'una exportació i el mòdul no la deixa en cap sentit:

  • A Snowflake export through FlexigoTech Cloud does not go back to a direct connection.: una exportació que va per FlexigoTech Cloud no torna a una connexió directa.
  • A Snowflake export with a direct connection keeps it: it does not move to FlexigoTech Cloud.: una exportació amb connexió directa la manté i no passa a FlexigoTech Cloud.

Uns altres dos missatges parlen del connector de Python i de l'autenticació per parell de claus:

  • Snowflake Python connector not found. Install via: pip install snowflake-connector-python: no es troba el connector de Python de Snowflake; el missatge dona l'ordre per instal·lar-lo, pip install snowflake-connector-python.
  • Private key path or pasted key content is required for key-pair auth.: l'autenticació per parell de claus necessita la ruta de la clau privada o el contingut de la clau enganxat.

Què aprendre del cas

  • Llegeix el missatge sencer: en bona part d'ells, la segona frase ja és el que has de fer.
  • Quan el text acaba en Nothing was sent., el mateix mòdul et diu que no s'ha enviat res.
  • Dona a cada exportació el seu propi esquema si comparteixen compte, base de dades i model, i tingues en compte també les arxivades.
  • Un model sense write_date no admet el mode incremental.
  • El tipus de connexió d'una exportació, directa o per FlexigoTech Cloud, no es canvia després en cap sentit.

Com t'ajuda FlexigoTech

FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida. Amb la connexió per FlexigoTech Cloud, el servei guarda xifrades les credencials, vigila la sincronització i avisa per correu si falla. El mòdul costa 9 € per versió d'Odoo a Odoo Apps (pagament únic, sense IVA), per a 17, 18, 19 i 20, i el pla Connector val 49 €/mes o 490 €/any sense IVA. Tens els detalls a la pàgina del mòdul i a la seva fitxa d'Odoo Apps.

Continua llegint

Com funciona Flexigo Odoo to Snowflake Snapshot Exporter a Odoo, terme a termeMenús, tasca programada cada 15 minuts i models de Flexigo Odoo to Snowflake Snapshot Exporter, explicats com a glossari per a qui ja fa servir Odoo.Fas servir Snowflake i encara no tens Odoo: un cas complet amb el Snapshot ExporterCas il·lustratiu per a qui ja treballa amb Snowflake i encara no fa servir Odoo: què exporta Flexigo Odoo to Snowflake Snapshot Exporter i per on començar.Posada en marxa d'EU Digital Services Act Compliance Suite a Odoo: un cas de principi a fiCas pràctic per posar en marxa EU Digital Services Act Compliance Suite a Odoo: camps clau, estats de cada registre i què revisar la primera setmana.
Comprovat al codi del connector (versió 20.0) i a les fonts enllaçades

Fonts