]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Remove duplicate captions
authorChocobozzz <me@florianbigard.com>
Thu, 8 Apr 2021 12:45:40 +0000 (14:45 +0200)
committerChocobozzz <me@florianbigard.com>
Thu, 8 Apr 2021 12:45:40 +0000 (14:45 +0200)
server/initializers/constants.ts
server/initializers/migrations/0612-captions-unique.ts [new file with mode: 0644]

index 1623e6f42c2fa7ead4b2cb18e0687452a22fea50..50467f408ca6a2951eebf58667fb4f67cda73c62 100644 (file)
@@ -24,7 +24,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
 
 // ---------------------------------------------------------------------------
 
-const LAST_MIGRATION_VERSION = 610
+const LAST_MIGRATION_VERSION = 612
 
 // ---------------------------------------------------------------------------
 
diff --git a/server/initializers/migrations/0612-captions-unique.ts b/server/initializers/migrations/0612-captions-unique.ts
new file mode 100644 (file)
index 0000000..368838a
--- /dev/null
@@ -0,0 +1,23 @@
+import * as Sequelize from 'sequelize'
+
+async function up (utils: {
+  transaction: Sequelize.Transaction
+  queryInterface: Sequelize.QueryInterface
+  sequelize: Sequelize.Sequelize
+  db: any
+}): Promise<void> {
+
+  await utils.sequelize.query(
+    'DELETE FROM "videoCaption" v1 USING (SELECT MIN(id) as id, "filename" FROM "videoCaption" ' +
+    'GROUP BY "filename" HAVING COUNT(*) > 1) v2 WHERE v1."filename" = v2."filename" AND v1.id <> v2.id'
+  )
+}
+
+function down (options) {
+  throw new Error('Not implemented.')
+}
+
+export {
+  up,
+  down
+}