Zum Hauptinhalt springen
Snowflake

Fehler im Odoo-Snowflake-Exporter: ein Beispielfall von Anfang bis Ende

Viele Meldungen von Flexigo Odoo to Snowflake Snapshot Exporter sagen schon im eigenen Text, was fehlt: ein Intervall von mindestens 15 Minuten, eine Stapelgröße zwischen 100 und 50000, der private Schlüssel ohne Passphrase oder ein eigenes Schema für jeden Export. Hier gehen wir sie an einem Beispielfall durch, in der Reihenfolge, in der sie Ihnen beim Einrichten eines Exports begegnen könnten, mit dem genauen Wortlaut des Moduls und was jeweils zu tun ist.

FlexigoTech · Verantwortlich: Víctor Gómez · Aktualisiert am 4. November 2026

Das Wichtigste

Versionen
Odoo 17, 18, 19 und 20
Geprüft
im Quellcode des Connectors, Version 20.0 · in den Quellen am Ende
Lesezeit
6 Min.

Ein Fall, um die Meldungen durchzugehen

Beispiel Fiktiver Fall: Firma und Zahlen sind erfunden, um den Ablauf zu zeigen.

Eisenwaren Rialto (ein erfundenes Unternehmen) arbeitet mit Odoo und möchte mit dem Modul eine Kopie seiner Daten nach Snowflake übertragen. Die Administratorin Marta legt den ersten Export an und stößt nacheinander auf die Meldungen. Die genaue Reihenfolge spielt keine Rolle: Entscheidend ist, was jede Meldung sagt und was Marta tut, um weiterzukommen. Wenn Sie vorher sehen möchten, wie das Modul aufgebaut ist, lesen Sie den Artikel darüber, wie es intern funktioniert.

Liste der Snowflake-Exportkonfigurationen mit vier Datensätzen, aktiviertem Kontrollkästchen Active und leerer Spalte Last Sync
Die Exportkonfigurationen unter Settings › Snowflake Export › Snowflake Export Configurations, die Spalte Last Sync noch leer.

Der Snowflake-Schlüssel in FlexigoTech Cloud

Marta entscheidet, dass der Export über FlexigoTech Cloud laufen soll, und fügt den Schlüssel ein. Die erste Meldung lautet:

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

Das bedeutet: Bevor der Schlüssel gespeichert wird, muss ein Administrator akzeptieren, dass der Snowflake-Schlüssel und die exportierten Daten über FlexigoTech Cloud laufen. Die Meldung stellt klar, dass nichts gesendet wurde. Was Marta tut: Ein Administrator akzeptiert, und sie speichert erneut.

Beim zweiten Versuch fügt sie den Schlüssel so ein, wie sie ihn hatte, mit Passphrase geschützt:

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

Das Modul verlangt den unverschlüsselten privaten Schlüssel im PEM-Format und ohne Passphrase; laut Meldung ist es FlexigoTech Cloud, die ihn verschlüsselt aufbewahrt. Marta fügt die Version ohne Passphrase ein.

Ein Kollege hatte in derselben Datenbank bereits einen Testexport über die Cloud angelegt, und es erscheint:

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

FlexigoTech Cloud speichert nur einen Snowflake-Schlüssel pro Datenbank, und ein anderer Export läuft bereits über die Cloud. Auch hier wurde nichts gesendet.

Und wenn sie ohne gespeicherten Schlüssel weitermachen will, stoppt das Modul sie mit Save the Snowflake key in FlexigoTech Cloud first.: Zuerst muss der Schlüssel in FlexigoTech Cloud gespeichert werden.

Intervall und Stapelgröße

Um schnell zu testen, stellt Marta ein sehr kurzes Intervall und einen kleinen Stapel ein. Sie erhält zwei Validierungsmeldungen:

  • Cron interval must be at least 15 minutes.: Das Intervall muss 15 Minuten oder mehr betragen.
  • Batch size must be between 100 and 50000.: Die Stapelgröße muss zwischen 100 und 50000 liegen.

Marta passt die Werte an diese Grenzen an und speichert.

Modelle und Felder, die sich nicht exportieren lassen

Liste der Model Lines mit vier Zeilen: Konfiguration, Modell, Tabelle, Synchronisierungsmodus und aktiviertes Kontrollkästchen Active
Die Modellzeilen unter Settings › Snowflake Export › Model Lines, jede mit ihrem Modus, Full refresh oder Incremental.

Beim Hinzufügen von Modellen erscheinen diese Meldungen:

  • This model is protected and cannot be exported.: Das Modell ist geschützt, und das Modul lässt es nicht exportieren.
  • Only concrete database-backed models can be exported.: Exportiert werden nur konkrete, datenbankgestützte Modelle.
  • This model does not have write_date; incremental mode is not supported.: Das Modell hat kein write_date und unterstützt daher den inkrementellen Modus nicht.
  • The model of an export line is chosen with its Model field.: Das Modell einer Exportzeile wird über ihr Feld Model gewählt.

Bei den Feldern ist es ähnlich:

  • This field is excluded by default for security.: Das Feld ist aus Sicherheitsgründen standardmäßig ausgeschlossen.
  • The field of an export line is chosen with its Field field.: Das Feld einer Exportzeile wird über ihr Feld Field gewählt.
Liste der Field Lines mit Spalten für Modell, Feldname, Typ, einbezogen, Spalte, Snowflake-Datentyp und Sicherheitshinweis
Die Feldzeilen in den Einstellungen, mit Zeilen aus res.users, res.partner und res.company und ihrer Spalte für den Sicherheitshinweis.

Die erste Synchronisierung

Marta startet die Synchronisierung und startet sie, ohne zu warten, gleich noch einmal:

Sync already in progress for this configuration.

Für diese Konfiguration läuft bereits eine Synchronisierung, also wartet sie, bis die laufende abgeschlossen ist.

Danach dupliziert sie den Export für ein anderes Unternehmen der Gruppe, mit demselben Konto, derselben Datenbank, demselben Schema und demselben Modell:

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.

Ein anderer Export, und hier zählen auch archivierte, sendet an dieselbe Tabelle; eine vollständige Aktualisierung würde dessen Zeilen löschen. Der Ausweg ist der, den die Meldung nennt: ein eigenes Schema für jeden Export.

Später liefert eine Synchronisierung:

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

Die Meldung nennt das Feld, das nicht passt, und was erwartet wurde. Die beiden Auswege stehen im Text selbst: eine vollständige Aktualisierung oder Snowflake manuell anpassen.

Rundgang durch die Liste der Exportkonfigurationen, die Liste der Model Lines und die der Field Lines
Von den Exportkonfigurationen zu den Modellzeilen, zurück zu den Konfigurationen und schließlich zu den Feldzeilen.

Wer den Export geändert hat und mit welchem Benutzer gelesen wird

Monate später wechselt die Person, die den Export zuletzt geändert hat, zu einem anderen Unternehmen der Gruppe, und diese Meldung erscheint:

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

Wer den Export zuletzt geändert hat, gehört nicht zu dem Unternehmen, das die Meldung nennt. Der tatsächliche Text enthält den Namen der Person und den des Unternehmens, sodass Sie wissen, wen und was Sie prüfen müssen.

Ein anderes Mal stößt Marta auf eine andere Meldung, die nichts über Unternehmen sagt:

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

Sie besagt nur, dass der Export keinen aktiven Benutzer hat, mit dem die Datensätze gelesen werden. Der Ausweg steht im Text: Ein Administrator muss den Export erneut speichern.

Direkte Verbindung oder über die Cloud

Marta versucht, den Verbindungstyp eines Exports zu ändern, und das Modul lässt es in keiner Richtung zu:

  • A Snowflake export through FlexigoTech Cloud does not go back to a direct connection.: Ein Export über FlexigoTech Cloud wechselt nicht zurück zu einer direkten Verbindung.
  • A Snowflake export with a direct connection keeps it: it does not move to FlexigoTech Cloud.: Ein Export mit direkter Verbindung behält diese und wechselt nicht zu FlexigoTech Cloud.

Zwei weitere Meldungen betreffen den Python-Connector und die Schlüsselpaar-Authentifizierung:

  • Snowflake Python connector not found. Install via: pip install snowflake-connector-python: Der Snowflake-Python-Connector wird nicht gefunden; die Meldung nennt den Befehl zur Installation, pip install snowflake-connector-python.
  • Private key path or pasted key content is required for key-pair auth.: Die Schlüsselpaar-Authentifizierung benötigt den Pfad zum privaten Schlüssel oder den eingefügten Schlüsselinhalt.

Was man aus dem Fall lernt

  • Lesen Sie die ganze Meldung: Bei vielen ist der zweite Satz bereits das, was Sie tun müssen.
  • Endet der Text mit Nothing was sent., sagt Ihnen das Modul selbst, dass nichts gesendet wurde.
  • Geben Sie jedem Export ein eigenes Schema, wenn sie Konto, Datenbank und Modell teilen, und denken Sie auch an archivierte.
  • Ein Modell ohne write_date unterstützt den inkrementellen Modus nicht.
  • Der Verbindungstyp eines Exports, direkt oder über FlexigoTech Cloud, lässt sich nachträglich in keiner Richtung ändern.

Wie FlexigoTech Sie unterstützt

FlexigoTech implementiert Odoo 17, 18, 19 und 20 und entwickelt maßgeschneiderte Konnektoren und Integrationen. Bei der Verbindung über FlexigoTech Cloud speichert der Dienst die Zugangsdaten verschlüsselt, überwacht die Synchronisierung und benachrichtigt per E-Mail, wenn sie fehlschlägt. Das Modul kostet 9 € pro Odoo-Version in Odoo Apps (Einmalzahlung, zzgl. MwSt.), für 17, 18, 19 und 20, und der Connector-Tarif kostet 49 €/Monat oder 490 €/Jahr zzgl. MwSt. Details finden Sie auf der Modulseite und in seinem Eintrag in Odoo Apps.

Weiterlesen

So funktioniert Flexigo Odoo to Snowflake Snapshot Exporter in Odoo, Begriff für BegriffMenüs, geplante Aktion alle 15 Minuten und Modelle von Flexigo Odoo to Snowflake Snapshot Exporter, als Glossar für alle, die Odoo bereits nutzen.Snowflake im Einsatz, aber noch kein Odoo: ein Fallbeispiel mit dem Snapshot ExporterFallbeispiel für Unternehmen mit Snowflake, aber ohne Odoo: was Flexigo Odoo to Snowflake Snapshot Exporter exportiert und wie Sie am besten starten.EU Digital Services Act Compliance Suite in Odoo einführen: ein Fall von Anfang bis EndePraxisfall zur Einführung der EU Digital Services Act Compliance Suite in Odoo: wichtige Felder, Status jedes Datensatzes und was Sie in Woche eins prüfen.
Geprüft im Quellcode des Connectors (Version 20.0) und in den verlinkten Quellen

Quellen