@storecraft/database-sql-base
v1.3.1
Published
Official SQL Database driver for storecraft
Downloads
284
Maintainers
Readme
Storecraft SQL driver
Official SQL driver for StoreCraft with the dialects abstracted with Kysely or your own drivers.
npm i @storecraft/database-sql-baseusage
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: ['[email protected]'],
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
- Simply
runner.sqlite-local.test.js
npm run test:sqlitePostgres
- First setup a
postgresserver
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- create Environment
create
.envfile with
POSTGRES_USER='user'
POSTGRES_PASSWORD='password'
POSTGRES_PORT=5432
POSTGRES_HOST='localhost'- Run
runner.postgres-local.test.js
npm run test:postgresMySQL
- First setup a
mysqlserver
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- create Environment
create
.envfile with
MYSQL_USER='root'
MYSQL_ROOT_PASSWORD='password'
MYSQL_PORT=8080
MYSQL_HOST='localhost'- Run
runner.mysql-local.test.js
npm run test:mysqlMSSQL (Currently NOT SUPPORTED, waiting for votes on that one)
Work in progress, i will probably not continue with this.
- First setup a
mysqlserver
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
- create Environment
create
.envfile with
MYSQL_USER='root'
MYSQL_ROOT_PASSWORD='password'
MYSQL_PORT=8080
MYSQL_HOST='localhost'- Run
runner.mysql-local.test.js
npm run test:mysqlAuthor: Tomer Shalev <[email protected]>