Fix broken migration introduced in 2.2.0-rc.1
authorChocobozzz <me@florianbigard.com>
Mon, 25 May 2020 06:58:42 +0000 (08:58 +0200)
committerChocobozzz <me@florianbigard.com>
Mon, 25 May 2020 06:59:59 +0000 (08:59 +0200)
server/initializers/constants.ts
server/initializers/migrations/0485-video-file-metadata.ts [deleted file]
server/initializers/migrations/0510-video-file-metadata.ts [new file with mode: 0644]

index 676d9804be073234c60d179c26066368ea9b900b..d201df3d892199af634f523ede41a8537cc04fa0 100644 (file)
@@ -14,7 +14,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
 
 // ---------------------------------------------------------------------------
 
-const LAST_MIGRATION_VERSION = 505
+const LAST_MIGRATION_VERSION = 510
 
 // ---------------------------------------------------------------------------
 
diff --git a/server/initializers/migrations/0485-video-file-metadata.ts b/server/initializers/migrations/0485-video-file-metadata.ts
deleted file mode 100644 (file)
index 5d95be0..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as Sequelize from 'sequelize'
-
-async function up (utils: {
-  transaction: Sequelize.Transaction
-  queryInterface: Sequelize.QueryInterface
-  sequelize: Sequelize.Sequelize
-}): Promise<void> {
-
-  const metadata = {
-    type: Sequelize.JSONB,
-    allowNull: true
-  }
-  await utils.queryInterface.addColumn('videoFile', 'metadata', metadata)
-
-  const metadataUrl = {
-    type: Sequelize.STRING,
-    allowNull: true
-  }
-  await utils.queryInterface.addColumn('videoFile', 'metadataUrl', metadataUrl)
-
-}
-
-function down (options) {
-  throw new Error('Not implemented.')
-}
-
-export {
-  up,
-  down
-}
diff --git a/server/initializers/migrations/0510-video-file-metadata.ts b/server/initializers/migrations/0510-video-file-metadata.ts
new file mode 100644 (file)
index 0000000..be9feb4
--- /dev/null
@@ -0,0 +1,38 @@
+import * as Sequelize from 'sequelize'
+
+async function up (utils: {
+  transaction: Sequelize.Transaction
+  queryInterface: Sequelize.QueryInterface
+  sequelize: Sequelize.Sequelize
+}): Promise<void> {
+
+  // We made a mistake with the migration in 2.2.0-rc.1
+  // Docker containers did not include this migration file
+  // So we check the table definition and add the column if it does not exist
+  const tableDefinition = await utils.queryInterface.describeTable('videoFile')
+
+  if (!tableDefinition['metadata']) {
+    const metadata = {
+      type: Sequelize.JSONB,
+      allowNull: true
+    }
+    await utils.queryInterface.addColumn('videoFile', 'metadata', metadata)
+  }
+
+  if (!tableDefinition['metadataUrl']) {
+    const metadataUrl = {
+      type: Sequelize.STRING,
+      allowNull: true
+    }
+    await utils.queryInterface.addColumn('videoFile', 'metadataUrl', metadataUrl)
+  }
+}
+
+function down (options) {
+  throw new Error('Not implemented.')
+}
+
+export {
+  up,
+  down
+}