]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/initializers/migrations/0005-email-pod.js
Add like/dislike system for videos
[github/Chocobozzz/PeerTube.git] / server / initializers / migrations / 0005-email-pod.js
index d90b674a135a38997e63a0b07b9ab8711b63fa08..9bbb354bf1c7105dd6540463fa249fb821688e31 100644 (file)
@@ -1,18 +1,39 @@
-/*
-  This is just an example.
-*/
+'use strict'
 
-// utils = { transaction, queryInterface }
-exports.up = function (utils, callback) {
+const waterfall = require('async/waterfall')
+
+// utils = { transaction, queryInterface, sequelize, Sequelize }
+exports.up = function (utils, finalCallback) {
   const q = utils.queryInterface
   const Sequelize = utils.Sequelize
 
   const data = {
     type: Sequelize.STRING(400),
-    allowNull: false
+    allowNull: false,
+    defaultValue: ''
   }
 
-  q.addColumn('Pods', 'email', data, { transaction: utils.transaction }).asCallback(callback)
+  waterfall([
+
+    function addEmailColumn (callback) {
+      q.addColumn('Pods', 'email', data, { transaction: utils.transaction }).asCallback(function (err) {
+        return callback(err)
+      })
+    },
+
+    function updateWithFakeEmails (callback) {
+      const query = 'UPDATE "Pods" SET "email" = \'dummy@example.com\''
+      utils.sequelize.query(query, { transaction: utils.transaction }).asCallback(function (err) {
+        return callback(err)
+      })
+    },
+
+    function nullOnDefault (callback) {
+      data.defaultValue = null
+
+      q.changeColumn('Pods', 'email', data, { transaction: utils.transaction }).asCallback(callback)
+    }
+  ], finalCallback)
 }
 
 exports.down = function (options, callback) {