Vai al contenuto principale
Snowflake

Errori dell'esportatore da Odoo a Snowflake: un caso dall'inizio alla fine

Molti messaggi di Flexigo Odoo to Snowflake Snapshot Exporter dicono già nel loro testo cosa manca: un intervallo di almeno 15 minuti, un lotto tra 100 e 50000, la chiave privata senza passphrase o uno schema dedicato per ogni esportazione. Qui li ripercorriamo in un caso di esempio, nell'ordine in cui potresti incontrarli mentre configuri un'esportazione, con il testo esatto del modulo e cosa fare per ciascuno.

FlexigoTech · Responsabile: Víctor Gómez · Aggiornato il 4 novembre 2026

In breve

Modulo
Snowflake
Versioni
Odoo 17, 18, 19 e 20
Verificato
nel codice del connettore, versione 20.0 · nelle fonti collegate in fondo
Lettura
6 min

Un caso per ripercorrere i messaggi

Esempio Caso illustrativo: l'azienda e i suoi dati sono inventati per spiegare il flusso.

Ferramenta Rialto (azienda inventata) lavora con Odoo e vuole portare una copia dei suoi dati su Snowflake con il modulo. La sua amministratrice, Marta, crea la prima esportazione e incontra gli avvisi uno alla volta. L'ordine esatto non conta: conta cosa dice ogni messaggio e cosa fa lei per andare avanti. Se prima vuoi vedere com'è fatto il modulo, c'è l'articolo su come funziona dall'interno.

Elenco delle configurazioni di esportazione verso Snowflake con quattro record, casella Active spuntata e colonna Last Sync vuota
Le configurazioni di esportazione in Settings › Snowflake Export › Snowflake Export Configurations, con la colonna Last Sync ancora vuota.

La chiave di Snowflake in FlexigoTech Cloud

Marta sceglie di far passare l'esportazione da FlexigoTech Cloud e incolla la chiave. Il primo avviso è questo:

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

Significa che, prima di salvare la chiave, un amministratore deve accettare che la chiave di Snowflake e i dati esportati passino da FlexigoTech Cloud. Il messaggio chiarisce che non è stato inviato nulla. Cosa fa Marta: un amministratore accetta e lei salva di nuovo.

Al secondo tentativo incolla la chiave così come l'aveva, protetta da passphrase:

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

Il modulo chiede la chiave privata non cifrata, in formato PEM e senza passphrase; secondo il messaggio stesso, è FlexigoTech Cloud a conservarla cifrata. Marta incolla la versione senza passphrase.

Un collega aveva già creato un'altra esportazione di prova tramite cloud nello stesso database, e compare questo:

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

FlexigoTech Cloud conserva una sola chiave di Snowflake per database e un'altra esportazione passa già dal cloud. Anche qui non è stato inviato nulla.

E se prova ad andare avanti senza aver salvato la chiave, il modulo la blocca con Save the Snowflake key in FlexigoTech Cloud first.: prima bisogna salvare la chiave in FlexigoTech Cloud.

Frequenza e dimensione del lotto

Per fare una prova veloce, Marta imposta un intervallo molto breve e un lotto piccolo. Riceve due avvisi di validazione:

  • Cron interval must be at least 15 minutes.: l'intervallo deve essere di 15 minuti o più.
  • Batch size must be between 100 and 50000.: la dimensione del lotto deve essere tra 100 e 50000.

Marta porta i valori entro questi limiti e salva.

Modelli e campi che non si possono esportare

Elenco di Model Lines con quattro righe: configurazione, modello, tabella, modalità di sincronizzazione e casella Active spuntata
Le righe modello in Settings › Snowflake Export › Model Lines, ciascuna con la sua modalità, Full refresh o Incremental.

Aggiungendo i modelli compaiono questi messaggi:

  • This model is protected and cannot be exported.: il modello è protetto e il modulo non permette di esportarlo.
  • Only concrete database-backed models can be exported.: si esportano solo modelli concreti appoggiati al database.
  • This model does not have write_date; incremental mode is not supported.: il modello non ha write_date, quindi non supporta la modalità incrementale.
  • The model of an export line is chosen with its Model field.: il modello di una riga di esportazione si sceglie con il suo campo Model.

Con i campi succede qualcosa di simile:

  • This field is excluded by default for security.: il campo è escluso di default per sicurezza.
  • The field of an export line is chosen with its Field field.: il campo di una riga di esportazione si sceglie con il suo campo Field.
Elenco di Field Lines con colonne per modello, nome del campo, tipo, incluso, colonna, tipo di dato Snowflake e avviso di sicurezza
Le righe campo nelle Impostazioni, con righe di res.users, res.partner e res.company e la relativa colonna di avviso di sicurezza.

La prima sincronizzazione

Marta avvia la sincronizzazione e, senza aspettare, la avvia di nuovo:

Sync already in progress for this configuration.

C'è già una sincronizzazione in corso per quella configurazione, quindi aspetta che finisca quella già avviata.

Poi duplica l'esportazione per un'altra azienda del gruppo, con lo stesso account, database, schema e modello:

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'altra esportazione, e qui contano anche quelle archiviate, invia alla stessa tabella; un refresh completo cancellerebbe le sue righe. La soluzione è quella indicata dal messaggio: uno schema dedicato per ogni esportazione.

Più avanti, una sincronizzazione restituisce:

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

Il messaggio indica il campo che non corrisponde e cosa ci si aspettava. Le due soluzioni sono quelle del testo stesso: un refresh completo oppure aggiornare Snowflake a mano.

Percorso tra l'elenco delle configurazioni di esportazione, quello delle Model Lines e quello delle Field Lines
Dalle configurazioni di esportazione alle righe modello, di nuovo alle configurazioni e infine alle righe campo.

Chi ha modificato l'esportazione e con quale utente si leggono i record

Mesi dopo, la persona che aveva modificato l'esportazione per ultima passa a un'altra azienda del gruppo, e compare questo avviso:

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

Chi ha modificato l'esportazione per ultimo non appartiene all'azienda indicata nel messaggio. Il testo reale riporta il nome della persona e quello dell'azienda, così sai chi e cosa controllare.

In un'altra occasione, Marta trova un messaggio diverso, che non parla di aziende:

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

Dice soltanto che l'esportazione non ha un utente attivo con cui leggere i record. La soluzione è quella del testo stesso: un amministratore deve salvarla di nuovo.

Connessione diretta o tramite cloud

Marta prova a cambiare il tipo di connessione di un'esportazione e il modulo non glielo permette in nessuna direzione:

  • A Snowflake export through FlexigoTech Cloud does not go back to a direct connection.: un'esportazione che passa da FlexigoTech Cloud non torna a una connessione diretta.
  • A Snowflake export with a direct connection keeps it: it does not move to FlexigoTech Cloud.: un'esportazione con connessione diretta la mantiene e non passa a FlexigoTech Cloud.

Altri due messaggi riguardano il connettore Python e l'autenticazione a coppia di chiavi:

  • Snowflake Python connector not found. Install via: pip install snowflake-connector-python: il connettore Python di Snowflake non viene trovato; il messaggio fornisce il comando per installarlo, pip install snowflake-connector-python.
  • Private key path or pasted key content is required for key-pair auth.: l'autenticazione a coppia di chiavi richiede il percorso della chiave privata o il contenuto della chiave incollato.

Cosa imparare dal caso

  • Leggi il messaggio per intero: in buona parte dei casi, la seconda frase è già quello che devi fare.
  • Quando il testo termina con Nothing was sent., è il modulo stesso a dirti che non è stato inviato nulla.
  • Dai a ogni esportazione il suo schema se condividono account, database e modello, e tieni conto anche di quelle archiviate.
  • Un modello senza write_date non supporta la modalità incrementale.
  • Il tipo di connessione di un'esportazione, diretta o tramite FlexigoTech Cloud, non si può cambiare dopo in nessuna direzione.

Come ti aiuta FlexigoTech

FlexigoTech implementa Odoo 17, 18, 19 e 20 e sviluppa connettori e integrazioni su misura. Con la connessione tramite FlexigoTech Cloud, il servizio conserva cifrate le credenziali, monitora la sincronizzazione e avvisa via e-mail se qualcosa non va. Il modulo costa 9 € per versione di Odoo su Odoo Apps (pagamento unico, IVA esclusa), per 17, 18, 19 e 20, e il piano Connettore costa 49 €/mese o 490 €/anno IVA esclusa. Trovi i dettagli nella pagina del modulo e nella sua scheda su Odoo Apps.

Continua a leggere

Come funziona Flexigo Odoo to Snowflake Snapshot Exporter in Odoo, termine per termineMenu, azione pianificata ogni 15 minuti e modelli di Flexigo Odoo to Snowflake Snapshot Exporter, spiegati come glossario per chi usa già Odoo.Usi Snowflake e non hai ancora Odoo: un caso completo con lo Snapshot ExporterCaso illustrativo per chi lavora già con Snowflake e non usa ancora Odoo: cosa esporta Flexigo Odoo to Snowflake Snapshot Exporter e da dove partire.Avvio di EU Digital Services Act Compliance Suite in Odoo: un caso dall'inizio alla fineCaso pratico per avviare EU Digital Services Act Compliance Suite in Odoo: campi chiave, stati di ogni record e cosa controllare nella prima settimana.
Verificato nel codice del connettore (versione 20.0) e nelle fonti collegate

Fonti