diff --git a/server/database.js b/server/database.js
index d5eea6193..b396fde05 100644
--- a/server/database.js
+++ b/server/database.js
@@ -1,5 +1,5 @@
 const fs = require("fs");
-const { sleep } = require("../src/util");
+const { sleep, debug, isDev } = require("../src/util");
 const { R } = require("redbean-node");
 const { setSetting, setting } = require("./util-server");
 const knex = require("knex");
@@ -23,20 +23,37 @@ class Database {
         const Dialect = require("knex/lib/dialects/sqlite3/index.js");
         Dialect.prototype._driver = () => sqlite3;
 
-        // Disable Pool by overriding acquireConnection()
-        Dialect.prototype.acquireConnection = async () => {
-            return this.sqliteInstance;
+        if (isDev) {
+            Dialect.prototype.acquireConnectionOrg = Dialect.prototype.acquireConnection;
+
+            Dialect.prototype.acquireConnection = async function () {
+                let a = await this.acquireConnectionOrg();
+                debug("acquired Connection");
+                return a;
+            };
         }
-        Dialect.prototype.releaseConnection = async () => { }
+
+        // Always return same connection.
+        Dialect.prototype.acquireRawConnection = async function () {
+            return Database.sqliteInstance;
+        };
+
+        Dialect.prototype.destroyRawConnection = async () => { }
 
         const knexInstance = knex({
             client: Dialect,
-            connection: {
-                filename: Database.path,
-            },
+            connection: { },        // Do not remove, Leave it empty is ok
             useNullAsDefault: true,
+            pool: {
+                min: 1,
+                max: 5,
+                idleTimeoutMillis: 30000,
+            }
         });
 
+        console.log( knexInstance.pool)
+        console.log("pool size")
+
         R.setup(knexInstance);
 
         if (process.env.SQL_LOG === "1") {