Browse Source

fix: mssql + older mariadb migration 2.2.17 failure

NGPixel 5 years ago
parent
commit
245104c6ae
1 changed files with 7 additions and 4 deletions
  1. 7 4
      server/db/migrations/2.2.17.js

+ 7 - 4
server/db/migrations/2.2.17.js

@@ -6,10 +6,13 @@ exports.up = async knex => {
   let sqlVersionDate = ''
   switch (WIKI.config.db.type) {
     case 'postgres':
-    case 'mssql':
       sqlVersionDate = 'UPDATE "pageHistory" h1 SET "versionDate" = COALESCE((SELECT prev."createdAt" FROM "pageHistory" prev WHERE prev."pageId" = h1."pageId" AND prev.id < h1.id ORDER BY prev.id DESC LIMIT 1), h1."createdAt")'
       break
+    case 'mssql':
+      sqlVersionDate = 'UPDATE h1 SET "versionDate" = COALESCE((SELECT TOP 1 prev."createdAt" FROM "pageHistory" prev WHERE prev."pageId" = h1."pageId" AND prev.id < h1.id ORDER BY prev.id DESC), h1."createdAt") FROM "pageHistory" h1'
+      break
     case 'mysql':
+    case 'mariadb':
       // -> Fix for 2.2.50 failed migration
       const pageHistoryColumns = await knex.schema.raw('SHOW COLUMNS FROM pageHistory')
       if (_.some(pageHistoryColumns[0], ['Field', 'versionDate'])) {
@@ -20,9 +23,9 @@ exports.up = async knex => {
 
       sqlVersionDate = `UPDATE pageHistory AS h1 INNER JOIN pageHistory AS h2 ON h2.id = (SELECT prev.id FROM (SELECT * FROM pageHistory) AS prev WHERE prev.pageId = h1.pageId AND prev.id < h1.id ORDER BY prev.id DESC LIMIT 1) SET h1.versionDate = h2.createdAt`
       break
-    case 'mariadb':
-      sqlVersionDate = `UPDATE pageHistory AS h1 INNER JOIN pageHistory AS h2 ON h2.id = (SELECT prev.id FROM pageHistory AS prev WHERE prev.pageId = h1.pageId AND prev.id < h1.id ORDER BY prev.id DESC LIMIT 1) SET h1.versionDate = h2.createdAt`
-      break
+    // case 'mariadb':
+    //   sqlVersionDate = `UPDATE pageHistory AS h1 INNER JOIN pageHistory AS h2 ON h2.id = (SELECT prev.id FROM pageHistory AS prev WHERE prev.pageId = h1.pageId AND prev.id < h1.id ORDER BY prev.id DESC LIMIT 1) SET h1.versionDate = h2.createdAt`
+    //   break
   }
   await knex.schema
     .alterTable('pageHistory', table => {