Browse Source

fix: rebuilding tree error when the page number is large enough in sqlite (#2830)

When the total page number is large enough (usually about 80+), sqlite will throw error: "Too many variables". This commit reduces the chunk size for sqlite configuration.
scienceasdf 4 years ago
parent
commit
4b80bab88e
1 changed files with 8 additions and 2 deletions
  1. 8 2
      server/jobs/rebuild-tree.js

+ 8 - 2
server/jobs/rebuild-tree.js

@@ -57,8 +57,14 @@ module.exports = async (pageId) => {
     await WIKI.models.knex.table('pageTree').truncate()
     if (tree.length > 0) {
       // -> Save in chunks, because of per query max parameters (35k Postgres, 2k MSSQL, 1k for SQLite)
-      for (const chunk of _.chunk(tree, 100)) {
-        await WIKI.models.knex.table('pageTree').insert(chunk)
+      if ((WIKI.config.db.type !== 'sqlite'))
+        for (const chunk of _.chunk(tree, 100)) {
+          await WIKI.models.knex.table('pageTree').insert(chunk)
+        }
+      } else {
+        for (const chunk of _.chunk(tree, 60)) {
+          await WIKI.models.knex.table('pageTree').insert(chunk)
+        }
       }
     }