Import several CSV files in one pass #2499
Description
Problem
Import Data… takes one file. Its file panel allows a single file and no folder (apple/TablePro/Core/Services/Infrastructure/ImportFilePanel.swift:63-65). Loading a directory of exports means running the whole flow once per file and checking the parsing options each time.
The pieces a batch needs already exist for one file: a proposed table name derived from the file name (features/import-export.mdx:330), a mapping saved per table and restored on the next import (features/import-export.mdx:379-381), and one on-error and transaction policy per import (features/import-export.mdx:283-300).
Proposed solution
- Multi-select in the file panel, and accept a dropped folder of
.csv,.tsv,.jsonand.xlsxfiles. - One sheet listing the files, each mapped to a target table: the table whose name matches the file, or a new table under the name the single-file sheet would propose. Each row opens the usual column mapping, starting from the table's saved mapping.
- Parsing options set once for the batch and overridable per file, since delimiter and encoding are detected per file.
- One transaction and one on-error policy for the whole batch, a Safe Mode prompt once for the batch, and a summary that counts rows per file.
Done when: a folder of 20 CSV files imports into 20 tables in one run, a failure in file 12 rolls back all of them under Stop and Rollback, and the summary names each file's row count.
Alternatives considered
Import one file at a time.
Platform
macOS
Related database type
N/A / General
Activity
datlechin commentedon Oct 21, 2026
Fixed by #3745.