You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`csv_loader.sh` validates CSV files, derives the target table name from the filename unless `--table` is supplied, writes accepted/skipped row outputs under `csv/logs/`, and routes valid rows to the selected engine-specific loader.
211
+
212
+
```bash
213
+
# Load into the engine from config.local.env
214
+
./csv_loader.sh data/customers.csv
215
+
216
+
# Specify engine/environment
217
+
./csv_loader.sh data/orders.csv --engine postgresql --env dev
CSV inputs must have a header row, use comma delimiters, and be UTF-8 encoded with or without a BOM. The shared Python validator skips empty rows and row/header column-count mismatches, warns on duplicate headers, preserves quoted commas/newlines, and writes rejected rows with an `_skip_reason` column.
227
+
228
+
Supported loader backends are PostgreSQL, MariaDB/MySQL, SQLite, InfluxDB, Redis, and Teradata. PostgreSQL uses `COPY`, MariaDB/MySQL uses `LOAD DATA LOCAL INFILE`, SQLite uses Python `csv` + `sqlite3`, InfluxDB writes line protocol via the `influx` CLI, Redis writes hashes through `redis-cli`, and Teradata uses BTEQ/FastLoad tooling.
229
+
230
+
---
231
+
209
232
## How Parameterisation Works
210
233
211
234
Every environment file contains **only a `\set` configuration block** followed by `\i te_core_schema.sql`. All logic lives in the core schema — the environment file is pure configuration.
0 commit comments