소스 검색

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()