Zum Inhalt springen

Export

for await (const record of db.$export()) {
if (record.type === "row") save(record.model, record.data); // pro Modell getypt
}
Terminal-Fenster
npx tapedb export --workspace <uuid> [--url <worker-url>] --out workspace.ndjson # TAPEDB_TOKEN oder ein Dev-Claim

Die Engine streamt NDJSON: eine header-Zeile mit den exportierten Modellen und solchen, die der Aufrufer nicht lesen darf, eine row-Zeile pro Zeile (Modell für Modell, in ID-Reihenfolge, über dieselben Leseregeln wie jede Query), eine file-Zeile pro Datei im Index (Bytes bleiben in R2) und eine end-Zeile mit Counts. Zeilen werden beim Konsumieren des Streams in 1.000er-Blöcken gelesen, sodass ein großer Workspace nie vollständig im Speicher liegt.

Schreibvorgänge treffen während eines Exports weiter ein. end.consistent ist true, wenn keiner eintraf; der Export ist dann der Workspace exakt bei end.seq. Ein Export, der vorzeitig stoppt, endet mit einer error-Zeile statt end; die CLI beendet sich mit 1.