Docs

Schema, CSV & pod export

Back up field definitions, move entry data with CSV, or copy entire pods between projects — all from the admin UI.

Schema export

Open the Schema section in the admin and select a collection. Click the Export schema button in the edit panel. The browser downloads a file named {collection}-schema.json containing the full field definition for that collection:

{
  "name": "posts",
  "fields": [
    { "name": "title",  "type": "text",     "required": true },
    { "name": "body",   "type": "richtext",  "required": false },
    { "name": "tags",   "type": "multitext", "required": false }
  ]
}

The exported file is self-contained and can be checked into version control alongside your site code.

Schema import

In the same edit panel, click Import schema and select a previously exported -schema.json file. Orbiter reads the file and repopulates the field list in the editor. Review the fields, then click Save to apply them to the collection.

  • Importing does not delete existing entries — only the field definitions are replaced.
  • Fields present in the schema but missing from existing entries will appear blank for those entries.
  • Fields that existed before the import but are absent from the JSON file are removed from the schema.

CSV export

In the Entries list for any collection, click the ↓ CSV button in the toolbar. The browser downloads a {collection}.csv file containing all entries (all statuses, excluding trashed). The format is:

ColumnDescription
slugEntry slug — primary key for import matching
statusdraft, published, or scheduled
field columnsOne column per field defined in the collection schema, in schema order

Rich text fields are exported as raw HTML. Multi-value fields (e.g. multitext) are newline-separated within the cell.

CSV import

Click the ↑ CSV button in the entries toolbar and select a CSV file. Orbiter processes each row:

  • Create — if no entry with that slug exists, a new entry is created.
  • Update — if an entry with that slug already exists, its fields and status are overwritten.

The slug column is required. Rows with a missing or empty slug are skipped. The status column is optional — if omitted, created entries default to draft and existing entries keep their current status.

After import, a summary shows the number of entries created, updated, and skipped, along with any row-level errors.

Pod export & import (cross-pod copy)

The Import page has a Pod / JSON tab for copying entire pods between projects.

Export

Click ↓ Export as JSON to download all collections and their entries as a single JSON file. The file includes collection schemas, so the receiving pod can recreate missing collections automatically.

GET /api/import/export-pod

Import

Drop a .json export file or a raw .pod SQLite file onto the import zone. Orbiter reads all collections and entries from the source and merges them into the current pod:

  • New collections are created with the source schema.
  • Existing collections are left untouched (schema is not overwritten).
  • Entries are matched by slug — choose Skip to keep existing entries or Overwrite to replace them.
POST /api/import/pod
Content-Type: multipart/form-data

pod_file:       (file)          .pod or .json file
on_duplicate:   skip | overwrite

Typical workflows

Migrate field definitions

  1. Export the schema from a staging pod.
  2. Import the schema on the production pod to synchronise field definitions.

Migrate entry data

  1. Export entry data as CSV from staging.
  2. Import the CSV on production.

Clone a pod

  1. On the source pod, go to Import → Pod / JSON → ↓ Export as JSON.
  2. On the target pod, go to Import → Pod / JSON → drop the JSON file → Import Pod.