Migrating from Airtable
Airtable bases become object definitions + property definitions. Treat each table as an object; linked-record columns become relation properties.
Mapping checklist
| Airtable | Primicornis |
|---|---|
| Table | Object definition |
| Field | Property definition |
| Linked records | Relation property (single or multi via schema) |
| Select / Single select | select with enumerated options |
| Formula / Rollup | External compute or future automation |
| Attachments | Export to object storage (S3) + URL property — not inlined |
CSV workflow
- Export CSV per table in dependency order (parents first).
- Build temporary ID maps (
airtable_record_id → primicornis_record_id). - Second pass updates relations using the map.
Pitfall: array-like multiselect
Ensure your import maps multi-select columns to the Primicornis property type that supports multiple values (or normalize to JSON strings where the API allows).
API migration
Use Airtable scripting or the REST API to push into Primicornis when you need incremental sync. Throttle to respect both Airtable’s and Primicornis’s rate envelopes.