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.

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

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 campModel.
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 campField.

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à.

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_dateno 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
Comprovat al codi del connector (versió 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: flexigo_odoo_to_snowflake_snapshot_exporter 20.0 (289554a6): models/config.py
- Codi del mòdul: flexigo_odoo_to_snowflake_snapshot_exporter 20.0 (289554a6): models/field_line.py
- Codi del mòdul: flexigo_odoo_to_snowflake_snapshot_exporter 20.0 (289554a6): models/model_line.py
- apps.odoo.com/apps/modules/20.0/flexigo_odoo_to_snowflake_snapshot_exporter
- apps.odoo.com/apps/modules/17.0/flexigo_odoo_to_snowflake_snapshot_exporter
- apps.odoo.com/apps/modules/18.0/flexigo_odoo_to_snowflake_snapshot_exporter
- apps.odoo.com/apps/modules/19.0/flexigo_odoo_to_snowflake_snapshot_exporter
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
