Переглянути джерело

fix: MSSQL - adds IDENTITY_INSERT in rebuild-tree.js #1125 (#1130)

Fixes issue when tree is being rebuilt with mssql backend
AchimHentschel 5 роки тому
батько
коміт
44a1c8699f
1 змінених файлів з 10 додано та 1 видалено
  1. 10 1
      server/jobs/rebuild-tree.js

+ 10 - 1
server/jobs/rebuild-tree.js

@@ -53,7 +53,16 @@ module.exports = async (pageId) => {
 
     await WIKI.models.knex.table('pageTree').truncate()
     if (tree.length > 0) {
-      await WIKI.models.knex.table('pageTree').insert(tree)
+      const { bindings, sql } = WIKI.models.knex.table('pageTree').insert(tree).toSQL();
+      if (WIKI.config.db.type === 'mssql') {
+        await WIKI.models.knex.raw(sql, bindings).wrap(
+          'SET IDENTITY_INSERT pageTree ON;',
+          'SET IDENTITY_INSERT pageTree OFF;',
+        )
+      } else {
+        await WIKI.models.knex.raw(sql, bindings)
+      }
+      // await WIKI.models.knex.table('pageTree').insert(tree)
     }
 
     await WIKI.models.knex.destroy()