Add migration file
authorclementbrizard <clementbrizard53@gmail.com>
Sat, 12 Jan 2019 13:35:39 +0000 (13:35 +0000)
committerclementbrizard <clementbrizard53@gmail.com>
Sat, 12 Jan 2019 13:35:39 +0000 (13:35 +0000)
server/initializers/migrations/0295-add-originally-published-at.ts [new file with mode: 0644]

diff --git a/server/initializers/migrations/0295-add-originally-published-at.ts b/server/initializers/migrations/0295-add-originally-published-at.ts
new file mode 100644 (file)
index 0000000..e02cca4
--- /dev/null
@@ -0,0 +1,42 @@
+import * as Sequelize from 'sequelize'
+
+async function up (utils: {
+  transaction: Sequelize.Transaction,
+  queryInterface: Sequelize.QueryInterface,
+  sequelize: Sequelize.Sequelize
+}): Promise<void> {
+
+  {
+    const data = {
+      type: Sequelize.DATE,
+      allowNull: true,
+      defaultValue: Sequelize.NOW
+    }
+    await utils.queryInterface.addColumn('video', 'originallyPublishedAt', data)
+  }
+
+  {
+    const query = 'UPDATE video SET "originallyPublishedAt" = video."publishedAt"'
+    await utils.sequelize.query(query)
+  }
+
+  // Sequelize does not alter the column with NOW as default value
+  {
+    const data = {
+      type: Sequelize.DATE,
+      allowNull: false,
+      defaultValue: Sequelize.NOW
+    }
+    await utils.queryInterface.changeColumn('video', 'originallyPublishedAt', data)
+  }
+
+}
+
+function down (options) {
+  throw new Error('Not implemented.')
+}
+
+export {
+  up,
+  down
+}