Skip to content

Commit

Permalink
perf(sqlite): run optimize every 6h
Browse files Browse the repository at this point in the history
  • Loading branch information
eartharoid committed Jun 20, 2023
1 parent 318b969 commit 8971c0a
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/client.js
Expand Up @@ -11,6 +11,7 @@ const { join } = require('path');
const YAML = require('yaml');
const TicketManager = require('./lib/tickets/manager');
const sqliteMiddleware = require('./lib/middleware/prisma-sqlite');
const ms = require('ms');

module.exports = class Client extends FrameworkClient {
constructor(config, log) {
Expand Down Expand Up @@ -53,13 +54,19 @@ module.exports = class Client extends FrameworkClient {
async login(token) {
/** @type {PrismaClient} */
this.prisma = new PrismaClient();

if (process.env.DB_PROVIDER === 'sqlite') {
// rewrite queries that use unsupported features
this.prisma.$use(sqliteMiddleware);
// make sqlite faster,
// and the missing parentheses are not a mistake, `$queryRaw` is a tagged template literal
// make sqlite faster (missing parentheses are not a mistake, `$queryRaw` is a tagged template literal)
this.log.debug(await this.prisma.$queryRaw`PRAGMA journal_mode=WAL;`); // https://www.sqlite.org/wal.html
this.log.debug(await this.prisma.$queryRaw`PRAGMA synchronous=normal;`); // https://www.sqlite.org/pragma.html#pragma_synchronous

setInterval(async () => {
this.log.debug(await this.prisma.$queryRaw`PRAGMA optimize;`); // https://www.sqlite.org/pragma.html#pragma_optimize
}, ms('6h'));
}

this.keyv = new Keyv();
return super.login(token);
}
Expand Down

0 comments on commit 8971c0a

Please sign in to comment.