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.

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

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 hawrite_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 campoModel.
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 campoField.

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.

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_datenon 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
Verificato nel codice del connettore (versione 20.0) e nelle fonti collegate
Fonti
- Codice del modulo: flexigo_odoo_to_snowflake_snapshot_exporter 20.0 (289554a6): models/config.py
- Codice del modulo: flexigo_odoo_to_snowflake_snapshot_exporter 20.0 (289554a6): models/field_line.py
- Codice del modulo: 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
