@titsoft/sqlite-csv
v0.9.6
Published
Load csv in sqlite with the right types and some stats
Readme
sqlite-csv
Load csv files in sqlite databases with the right types and some stats via sqlite3 cli.
It requires sqlite3 >= 3.36.0 (REGEXP support) installed on the OS.
What it does
- Loads the csv file into sqlite
- Defines types (
text,realorinteger) at the schema level- zero leading integers are considered as
text - dot is used for identifying
realdata - precedence order is computed as followed :
text>real>integer
- zero leading integers are considered as
- Replaces empty values by
nullvalues - Defines or create if not specified a primary key
- Creates a table with basic statistics for each field
NPX usage
npx command will load in dbname all csv files present in the folder where npx is run. Tables names match csv file names along stats tables suffixed with _stats. Delimiter is automatically detected but restricted to
- the first line of the
csvfile - comma and semi-colon
Options
-fk: add foreign key(s) with the following syntax-fk "referenceTable fkTable(fkField)"-sql: add a sql post-treatment like-sql sqlFilePath
npx @titsoft/sqlite-csv dbnameESM usage
via npm i @titsoft/sqlite-csv
import {importCsv} from '@titsoft/sqlite-csv'
const stats = await importCsv(dbPath, csvPath, options)Options object
separator: csv separator, default','csvTable: name of the imported csv table, default'main'statsTable: name of the stats table, default'main_stats',primaryKey: name of the primary key, defaultid
importCsv returned value
returns an array of object
fieldone of the fieldtype0 | 1 | 2sTypetext | real | integerdistinctnumber of distinct values (null not counted)null: number of null valuesminmin field valuemaxmax field valueavgaverage field valuetotaltotal number of records
Notes
min,maxandavgare length-based fortexttypemin,max,avg,distinctcomputation discardsnullvaluestypeandsTyperepresents the same descriptor
