sqlite
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import chalk from 'chalk';
|
||||
import sql from 'mssql';
|
||||
import LibDashStore from 'libdashstore';
|
||||
import { MssqlProvider } from 'libdashstore/providers/mssql';
|
||||
import { BetterSqlite3Provider } from 'libdashstore/providers/better-sqlite3';
|
||||
import env from '../config/env.js';
|
||||
|
||||
let pool;
|
||||
let provider;
|
||||
let store;
|
||||
let connecting;
|
||||
|
||||
@@ -31,6 +31,7 @@ const STORE_NAMESPACES = [
|
||||
'numbers',
|
||||
'companysetting',
|
||||
'articlesupplier',
|
||||
'manifestattachment',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -119,10 +120,13 @@ export async function getStore() {
|
||||
|
||||
if (!connecting) {
|
||||
connecting = (async () => {
|
||||
pool = await new sql.ConnectionPool(getMssqlConfig()).connect();
|
||||
store = wrapStoreWithTiming(
|
||||
await new LibDashStore(new MssqlProvider(pool))
|
||||
);
|
||||
if (env.dbProvider === 'sqlite' || env.dbProvider === 'better-sqlite3') {
|
||||
provider = new BetterSqlite3Provider(env.sqlite);
|
||||
} else {
|
||||
provider = new MssqlProvider(getMssqlConfig());
|
||||
}
|
||||
await provider.initialize();
|
||||
store = wrapStoreWithTiming(await new LibDashStore(provider));
|
||||
return store;
|
||||
})().finally(() => {
|
||||
connecting = undefined;
|
||||
@@ -137,9 +141,9 @@ export async function ensureConnection() {
|
||||
}
|
||||
|
||||
export async function closeStore() {
|
||||
if (pool) {
|
||||
await pool.close();
|
||||
pool = undefined;
|
||||
if (provider) {
|
||||
await provider.close();
|
||||
provider = undefined;
|
||||
store = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user