0.9.4 • Published 5 months ago
@titsoft/sqlite-csv v0.9.4
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
,real
orinteger
) at the schema level- zero leading integers are considered as
text
- dot is used for identifying
real
data - precedence order is computed as followed :
text
>real
>integer
- zero leading integers are considered as
- Replaces empty values by
null
values - 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
csv
file - 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 dbname
ESM 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
field
one of the fieldtype
0 | 1 | 2sType
text | real | integerdistinct
number of distinct values (null not counted)null
: number of null valuesmin
min field valuemax
max field valueavg
average field valuetotal
total number of records
Notes
min
,max
andavg
are length-based fortext
typemin
,max
,avg
,distinct
computation discardsnull
valuestype
andsType
represents the same descriptor
0.9.4
5 months ago
0.9.3
5 months ago
0.9.2
5 months ago
0.9.0
7 months ago
0.8.1
7 months ago
0.8.0
7 months ago
0.8.3
7 months ago
0.9.1
7 months ago
0.8.2
7 months ago
0.7.0
8 months ago
0.6.3
8 months ago
0.6.2
8 months ago
0.6.1
8 months ago
0.6.0
8 months ago
0.5.0
8 months ago
0.4.0
8 months ago
0.3.1
8 months ago
0.3.0
8 months ago
0.1.0
8 months ago