@storecraft/database-sql-base
v1.0.6
Published
Official SQL Database driver for storecraft
Downloads
182
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-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: ['[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'))
await app.init();
await migrateToLatest(app.db, false);
const server = http.createServer(app.handler).listen(
8000,
() => {
console.log(`Server is running on http://localhost:8000`);
}
);
Testing Locally
SQLite
- Simply
runner.sqlite-local.test.js
npm run test:sqlite
Postgres
- 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
- create Environment
create
.env
file with
POSTGRES_USER='user'
POSTGRES_PASSWORD='password'
POSTGRES_PORT=5432
POSTGRES_HOST='localhost'
- Run
runner.postgres-local.test.js
npm run test:postgres
MySQL
- 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
- create Environment
create
.env
file with
MYSQL_USER='root'
MYSQL_ROOT_PASSWORD='password'
MYSQL_PORT=8080
MYSQL_HOST='localhost'
- 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.
- 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
- create Environment
create
.env
file with
MYSQL_USER='root'
MYSQL_ROOT_PASSWORD='password'
MYSQL_PORT=8080
MYSQL_HOST='localhost'
- Run
runner.mysql-local.test.js
npm run test:mysql
Author: Tomer Shalev <[email protected]>