← All playbooks
Databases migration

Baserow → Airtable

Export each Baserow table and load it with Airtable's CSV import extension. Files, formulas, and comments need a separate path because neither the CSV nor the extension carries them.

Typical timeline4 to 12 business days14 to 36 hours active work
Statusneeds review
Source profileBaserow export documentation reviewed 2026-11-05
Destination profileAirtable CSV import extension documentation reviewed 2026-11-05
Documentation date
Review window
Evidence3 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Baserow

Reasons to stay
  • Open-source tables, views, and an Airtable importer give you a database you can host yourself
  • Structured ownership, status, and workflow views improve operational visibility
Reasons to leave
  • Formulas, lookups, rollups, automations, interfaces, and permissions still need rebuilding after import
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
New platform

Airtable

What gets better
  • Approachable relational tables combine spreadsheet familiarity with lightweight apps
  • Structured ownership, status, and workflow views improve operational visibility
What gets worse
  • Scale, automation, and permission needs can become expensive or awkward
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
Best of the move

Airtable: Approachable relational tables combine spreadsheet familiarity with lightweight apps. This removes a major source-side concern: Formulas, lookups, rollups, automations, interfaces, and permissions still need rebuilding after import.

Worst of the move

What you lose: Open-source tables, views, and an Airtable importer give you a database you can host yourself. What you inherit: Scale, automation, and permission needs can become expensive or awkward.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome10 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 5, Manual rebuild: 4, Not transferred: 1.
Clean0
Partial5
Manual4
Lost1
Mapping route8 of 9 fields have a destination path

This timeline assumes

  • The destination base is on a paid Airtable plan, because the CSV import extension is listed for paid plans.
  • The person running the import is an Owner or a Creator on that base.
  • Each table's CSV is under Airtable's 25,000-row and 5MB extension limits, or you split it.
  • Baserow stays readable until attachment files and row counts are checked in Airtable.
  • You take an Airtable base snapshot before the first import, as Airtable recommends.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Table rowspartialcriticalBaserow can export a whole table or a view to CSV. A view export obeys the view's filters, so a forgotten filter drops rows. Airtable's extension then loads that file into one existing table.Clear filters before a full export. Compare the CSV row count with the Baserow table before you upload.
Extension limitspartialcriticalAirtable documents a 25,000-row limit and a 5MB file limit. The extension also loads the whole destination table, so a large existing table can fail even when the CSV is small.Split wide tables. Import into a small table first when the destination is already large.
Merge keyspartialhighIf you merge, matching is case-sensitive. Duplicate keys in the CSV keep the first row only. A blank key creates a new record. Whitespace at the ends of the key is ignored.Pick a unique id. Preview the update, no-change, and new-record counts before you create records.
Select fieldspartialhighNew select options are created only when Create missing select options is on. That toggle needs Owner or Creator permission. Otherwise unknown options land as blank cells, and the row is still created.Turn the toggle on for the pilot, or pre-create the options.
Typed cellspartialhighAirtable says a value a field cannot accept does not stop the import. The cell is left empty. Dates, checkboxes, durations, and ratings only keep values they can read.Compare a sample of each typed field with the CSV. Do not trust a finished import that showed no error.
Computed Airtable fieldsmanualhighAirtable's unsupported CSV targets include formula, rollup, count, created time, last modified time, created by, last modified by, autonumber, button, barcode, and attachment. Rich long text is unsupported when rich text is enabled.Import raw values into text or number fields, then recreate formulas in Airtable.
FilesmanualcriticalBaserow's file export is a separate archive, organized by row id, not a column inside the CSV. Airtable's CSV extension does not fill attachment fields.Upload files after the rows exist, using the row id in the archive name.
Links between tablesmanualcriticalEach Baserow export is one table. A CSV does not rebuild Airtable linked-record fields by itself.Import the tables, then create link fields and fill them from the id columns you kept.
Comments and historylostmediumBaserow's export docs say row comments, mentions, and revision history stay in Baserow.Copy out any thread you still need before you archive the Baserow database.
Permissions and automationsmanualhighCollaborator fields export as names or emails. Baserow roles and automations are not an Airtable permission model.Invite people in Airtable on purpose. Rebuild automations there and run them once.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Baserow tableAirtable tabletransformExport the whole table, then map columns in the extension.
RowRecordtransformStay inside 25,000 rows and 5MB per file.
Text, number, date, selectMatching fieldtransformMap headers yourself. Names do not have to match.
Link to tableId column, then a link fieldmanualThe CSV holds values, not a live link.
File fieldAttachmentmanualUse the file archive, not the CSV.
Formula or rollupText snapshot, then an Airtable formulamanualAirtable will not fill a formula from CSV.
CollaboratorText email or nametransformBaserow exports names or emails, not Airtable users.
Comment or revisionNo destinationunsupportedBaserow excludes both from exports.
View filtersThe rows inside the CSVtransformA filtered view export is a subset. Clear filters for a full table.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep the Baserow database intact while Airtable receives a copy.

  1. Export every table as CSV with filters removed.
  2. Export file fields as an archive grouped by row id.
  3. Export a JSON copy if you want types spelled out beside the CSV.
  4. Record row counts per table before you touch Airtable.

Proof to capture: The CSV row counts and the file archive match the Baserow database you just exported.

Transformation · Spreadsheet or a small script, then the CSV import extension

CSV shaping

Give Airtable a header row and values its field types can accept.

  1. Keep a stable id column on every table.
  2. Write dates and checkboxes in a form the Airtable field accepts.
  3. Split files that exceed 25,000 rows or 5MB.
  4. Save as CSV and do not reorder rows in a way that splits a record from its id.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Airtable CSV import extension

Airtable load

Create or merge records without blanking good cells.

  1. Take a base snapshot.
  2. Map columns. Turn on Create missing select options if you intend to add options.
  3. If you merge, turn on Skip blank or invalid CSV values.
  4. Read the preview counts, then click Create records.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Export

A filtered view becomes the whole migration

criticalpossible likelihood

The CSV is shorter than the Baserow table.

Consequence
Airtable never sees the hidden rows.
Mitigation
Export the entire table for the production load.

Stop if: Any table count is short.

Import

The import finishes with empty cells

criticallikely likelihood

Select options, dates, or checkboxes were left blank and Airtable showed no error.

Consequence
The base looks complete and is missing values.
Mitigation
Compare a sample of every typed field with the CSV.

Stop if: A critical column has blank cells you did not expect.

Import

Merge keeps the wrong duplicate

highpossible likelihood

Two CSV rows share a key and Airtable uses only the first.

Consequence
Later edits in the file never land.
Mitigation
Deduplicate the key before import.

Stop if: The preview's ignored rows include data you still need.

06Precise timeline

Do the work in this order.

Estimate forBaserow tables exported to CSV and loaded with Airtable's CSV import extension, one table at a time.
Total elapsed4 to 12 business days
Active work14 to 36 hours
BufferAdd time for file uploads, link fields, and tables you must split under the 25,000-row cap.
01
Days 1 to 2Choose tables and keys1 to 2 days
02
Days 2 to 3Export Baserow1 to 2 days
03
Days 3 to 7Pilot one table2 to 4 days
04
Days 7 to 9Load the remaining tables1 to 3 days
05
Days 9 to 12Watch the new base2 to 3 days
  1. Days 1 to 2 · inventory

    Choose tables and keys

    3 to 6 hours active1 to 2 days elapsedOwner review waiting
    • List tables, file fields, and formulas.
    • Pick the unique key for any merge.

    Depends on: Baserow admin access, Airtable Owner or Creator

    Stop / go checkpoint

    Export?

    Go when: Each table has a key and a destination table.

    Stop when: A table has no stable id.

  2. Days 2 to 3 · backup

    Export Baserow

    2 to 5 hours active1 to 2 days elapsedDownload time waiting
    • Export full tables to CSV.
    • Export file archives.

    Depends on: Approved inventory

    Stop / go checkpoint

    Shape the files?

    Go when: CSV counts match Baserow.

    Stop when: A filtered view slipped into the export.

  3. Days 3 to 7 · pilot

    Pilot one table

    4 to 12 hours active2 to 4 days elapsedAirtable snapshot waiting
    • Snapshot the Airtable base.
    • Import one representative table and compare cells.

    Depends on: Verified exports

    Stop / go checkpoint

    Load the rest?

    Go when: The pilot's typed fields match the CSV.

    Stop when: Empty cells or extra records appear.

  4. Days 7 to 9 · cutover

    Load the remaining tables

    3 to 8 hours active1 to 3 days elapsedExtension runtime waiting
    • Freeze Baserow edits.
    • Import the final CSVs.
    • Rebuild links and upload files.

    Depends on: Passed pilot

    Stop / go checkpoint

    Open the Airtable base?

    Go when: Counts match and links resolve.

    Stop when: A table exceeds the extension limit mid-load.

  5. Days 9 to 12 · observe

    Watch the new base

    2 to 5 hours active2 to 3 days elapsedOne editing cycle waiting
    • Run rebuilt automations.
    • Keep Baserow read-only until sign-off.

    Depends on: Verified cutover

    Stop / go checkpoint

    Archive Baserow?

    Go when: Blocking checks stay green.

    Stop when: A link or file check fails.

07The point of change

Cut over with a way back.

Go live

Cutover

Load the final Baserow export into Airtable and stop editing Baserow.

Recommended window: A weekday morning with an Airtable Owner or Creator available to restore a snapshot.

  1. Freeze Baserow writes.
  2. Re-export any table that changed during the pilot.
  3. Snapshot Airtable, then run the extension on each final CSV.
  4. Upload files and fill link fields.
  5. Compare counts before you invite the rest of the team.

Proof to capture: Each Airtable table matches its final CSV, and the base snapshot from before the load still exists.

Return to safety

Rollback

Return to Baserow if the Airtable load is wrong.

Deadline: Before you delete the Baserow database or the CSV exports.

  1. Stop edits in Airtable.
  2. Restore the Airtable snapshot if the bad import should disappear.
  3. Send people back to Baserow.
  4. Export any Airtable records created after the switch before you discard them.
  5. Reconcile that list on purpose.

Proof to capture: Baserow is writable again, and the Airtable base is either restored or clearly marked as a failed copy.

Rollback immediately when
  • A table count does not match the final CSV
  • Critical cells imported blank
  • Files or links are missing
  • The merge updated the wrong records
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingRow countsCompare Baserow, the CSV, and Airtable.The three counts match for every full-table export.Count sheet
V-02BlockingCell valuesSample every field type, including selects and dates.Values match the CSV, or the blank is an accepted skip.Cell sample
V-03BlockingKeysReview the extension's update and new-record counts.The counts match the plan.Extension preview
V-04BlockingAttachmentsOpen files for a sample of row ids.Required files are attached to the right records.File sample
V-05BlockingLinked recordsFollow links across the tables you rebuilt.Each link points at the intended record.Link sample
V-06BlockingAirtable formulasCompare formula results with the Baserow snapshot.Critical results match.Formula sheet
V-07BlockingCollaboratorsSign in as an editor and as a read-only user.Permissions match the list you approved.Access notes
V-08BlockingSnapshotConfirm the pre-import snapshot is still restorable.You can name the snapshot and who can restore it.Snapshot note
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: Airtable has matched the final export through one editing cycle, and Baserow is still readable.

  1. Store the CSVs, the file archive, and the count sheet.
  2. Remove temporary Airtable extensions you added only for the import if you do not need them.
  3. Revoke extra Baserow tokens.
  4. Keep Baserow until the retention date.
  5. Turn on Airtable snapshots for the new base.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Baserow: export a tableAccessed 2026-11-05
  2. Airtable: CSV import extensionAccessed 2026-11-05
  3. Airtable: importing third-party dataAccessed 2026-11-05