1.3.1 • Published 8 months ago

@storecraft/database-sql-base v1.3.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Storecraft SQL driver

Official SQL driver for StoreCraft with the dialects abstracted with Kysely or your own drivers.

npm i @storecraft/database-sql-base

usage

import 'dotenv/config';
import http from "node:http";
import { App } from '@storecraft/core'
import { NodePlatform } from '@storecraft/core/platform/node';
import { SQL } from '@storecraft/database-sql-base'
import { migrateToLatest } from '@storecraft/database-sql-base/migrate.js'
import { NodeLocalStorage } from '@storecraft/core/storage/node'

const app = new App(
  {
    auth_admins_emails: ['admin@sc.com'],
    auth_secret_access_token: 'auth_secret_access_token',
    auth_secret_refresh_token: 'auth_secret_refresh_token'
  }
)
.withPlatform(new NodePlatform())
.withDatabase(
  new SQL({
    dialect: sqlite_dialect, 
    dialect_type: 'SQLITE'
  })
)
.withStorage(new NodeLocalStorage('storage'))
.init();

await migrateToLatest(app.__show_me_everything.db, false);
await app.__show_me_everything.vector_store.createVectorIndex();

http.createServer(app.handler).listen(
  8000,
  () => {
    app.print_banner('http://localhost:8000');
  }
); 

Testing Locally

SQLite

  1. Simply runner.sqlite-local.test.js
npm run test:sqlite

Postgres

  1. First setup a postgres server
docker pull postgres
docker run --name some-postgres -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin \
          -e PGDATA=/var/lib/postgresql/data/pgdata \
	        -v $(pwd):/var/lib/postgresql/data \
          -p 5432:5432 -d postgres
  1. create Environment create .env file with
POSTGRES_USER='user'
POSTGRES_PASSWORD='password'
POSTGRES_PORT=5432
POSTGRES_HOST='localhost'
  1. Run runner.postgres-local.test.js
npm run test:postgres

MySQL

  1. First setup a mysql server
docker pull mysql
docker run --name mysql \
           -v $(pwd):/etc/mysql/conf.d \
           -v /my/own/datadir:/var/lib/mysql \
           -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_ROOT_HOST=localhost \
           -e MYSQL_DATABASE=main -e MYSQL_USER=admin -e MYSQL_PASSWORD=admin \
           -p 8080:3306 -d mysql
  1. create Environment create .env file with
MYSQL_USER='root'
MYSQL_ROOT_PASSWORD='password'
MYSQL_PORT=8080
MYSQL_HOST='localhost'
  1. Run runner.mysql-local.test.js
npm run test:mysql

MSSQL (Currently NOT SUPPORTED, waiting for votes on that one)

Work in progress, i will probably not continue with this.

  1. First setup a mysql server
docker pull mcr.microsoft.com/mssql/server
# use this For OSX with M1 chips
docker pull mcr.microsoft.com/azure-sql-edge:latest
docker run --name some-mssql \
           -e ACCEPT_EULA=Y -e MSSQL_SA_PASSWORD='Abcd1234!?' \
           -v $(pwd):/var/opt/mssql \
           -p 1433:1433 \
           -d mcr.microsoft.com/azure-sql-edge:latest
  1. create Environment create .env file with
MYSQL_USER='root'
MYSQL_ROOT_PASSWORD='password'
MYSQL_PORT=8080
MYSQL_HOST='localhost'
  1. Run runner.mysql-local.test.js
npm run test:mysql
Author: Tomer Shalev <tomer.shalev@gmail.com>
1.0.19

10 months ago

1.0.18

10 months ago

1.0.17

10 months ago

1.0.16

10 months ago

1.2.5

9 months ago

1.3.1

8 months ago

1.3.0

8 months ago

1.0.22

10 months ago

1.0.21

10 months ago

1.0.20

10 months ago

1.0.24

9 months ago

1.0.23

10 months ago

1.0.15

10 months ago

1.0.14

10 months ago

1.0.13

11 months ago

1.0.12

11 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.11

11 months ago

1.0.10

11 months ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

2 years ago