Overview
PocketBase data import tools for CSV and JSON files made using PocketBase JS SDK.
Automatically creates typed PocketBase collection and populates it with data.
Columns conflicting with PocketBase's autogenerated system fields (id
,
created
, updated
; case-insensitive check, target column name's case is not
affected) are prefixed with _
.
Types
pocketbase-import
detects types using regular expressions. Currently supported
PocketBase types are:
Bool
Number
Plain text
Email
DateTime
JSON
Configuration
Install the latest Deno runtime to run the scripts.
In the root directory create .env
file with the following environment
variables:
ADMIN_EMAIL
(required) - superadmin emailADMIN_PASSWORD
(required) - superadmin passwordPOCKETBASE_URL
(optional) - PocketBase app URL, defaults to local instance
Place your import files inside of input
directory.
Options
You can change the default import options to your needs:
Name | Files | Required | Description | Example use |
---|---|---|---|---|
input | CSV/JSON | Yes | The name of the input file (with extension) | --input=example.csv |
id | CSV/JSON | No | Indicates that _id column should be typed as plain text, the type is detected by default |
--id |
lf | CSV | No | LF (\n ) EOL character will be used instead of default CLRF (\r\n ) |
--lf |
delimiter | CSV | No | Column value separator, defaults to , |
--delimiter=";" |
quote | CSV | No | Value quote character, defaults to ' |
--quote='~" |
CSV
Examples
Basic import (root directory):
deno run csv.ts --input=example.csv
Import without permission prompts and with _id
column as text:
deno run --allow-read --allow-env --allow-net csv.ts --input=example.csv --id
Import with custom parser options (you need to adjust example.csv
):
deno run csv.ts --input=example.csv --delimiter=";" --quote="~" --lf