0.5.2 • Published 5 years ago

@reality.hk/sqliteproxy v0.5.2

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

SQLiteProxy + Mozilla Porter stemmer for CJK FTS

My fork on SQLiteProxy with additional Mozilla Porter stemmer for CJK FTS.

A simple HTTP JSON proxy for SQLite.
This probably should not be exposed to end users. :-)

npm version

Installation

npm install -g @reality.hk/sqliteproxy

Options

Usage: sqliteproxy [options]

Options:
  --db: DB File path
    (default: "")
  --[no]readonly: Open the database for readonly
    (default: false)
  --port: TCP Port to listen on
    (default: 2048)
    (a number)

Usage examples

Existing DB

$ sqliteproxy --db ./examples/vt.db
^Z
[1]  + 23436 suspended sqliteproxy --db ./examples/vt.db
$ bg
[1]  + 23436 continued sqliteproxy --db ./examples/vt.db
$ curl 'http://localhost:2048' \
-d sql='select * from vt where md5 = "0060cc2e24f259545558ebd8834dc345"' -L | jq . # POST /
[
  {
    "md5": "0060cc2e24f259545558ebd8834dc345",
    "av_score": "7/61"
  }
]
$ curl 'http://localhost:2048' -G \
--data-urlencode sql='select * from vt where md5 = "0060cc2e24f259545558ebd8834dc345"' -L | jq . # GET /
[
  {
    "md5": "0060cc2e24f259545558ebd8834dc345",
    "av_score": "7/61"
  }
]
$ curl 'http://localhost:2048' -d sql='create table x(a)' -L
[]
$ curl 'http://localhost:2048' -d sql='drop table x' -L
[]
$ fg
[1]  + 23436 running    sqliteproxy --db ./examples/vt.db
^C

Read only

$ sqliteproxy --db ./examples/vt.db --readonly
^Z
[1]  + 23447 suspended sqliteproxy --db ./examples/vt.db --readonly
$ bg
[1]  + 23447 continued sqliteproxy --db ./examples/vt.db --readonly
$ curl 'http://localhost:2048' -d sql='create table x(a)' -L
SQLITE_READONLY: attempt to write a readonly database
$ fg
[1]  + 23447 running    sqliteproxy --db ./examples/vt.db --readonly
^C

New DB

$ sqliteproxy --db myNewDb.sqlite
^Z
[1]  + 23453 suspended sqliteproxy --db myNewDb.sqlite
$ bg
[1]  + 23453 continued sqliteproxy --db myNewDb.sqlite
$ curl 'http://localhost:2048' -d sql='create table x(a)' -L
[]
$ curl 'http://localhost:2048' -d sql='insert into x values (1),(2),(3)' -L
[]
$ curl 'http://localhost:2048' -d sql='select * from x' -L
[
  {
    "a": 1
  },
  {
    "a": 2
  },
  {
    "a": 3
  }
]
$ fg
[1]  + 23453 running    sqliteproxy --db myNewDb.sqlite
^C

Docker

https://hub.docker.com/r/siuying/sqliteproxy

docker run -d -p 2048:2048 -v /path/to/my/db/dir/:/data/ siuying/sqliteproxy --db /data/my.db
docker run -d -p 2048:2048 -v /path/to/my/db/dir/:/data/ siuying/sqliteproxy --readonly --db /data/my.db

License

MIT