summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-03-13 01:56:56 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-03-13 01:56:56 +0900
commit16339188a55cd277281e83ee20677ce50e7f16c2 (patch)
tree444e2cd9a2ffe06cdb25dee5508ffac407047b3c
parentv4118 (diff)
downloadmisskey-16339188a55cd277281e83ee20677ce50e7f16c2.tar.gz
misskey-16339188a55cd277281e83ee20677ce50e7f16c2.tar.bz2
misskey-16339188a55cd277281e83ee20677ce50e7f16c2.zip
Add migration script
-rw-r--r--tools/migration/node.2018-03-13.othello.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/tools/migration/node.2018-03-13.othello.js b/tools/migration/node.2018-03-13.othello.js
new file mode 100644
index 0000000000..12d9e09533
--- /dev/null
+++ b/tools/migration/node.2018-03-13.othello.js
@@ -0,0 +1,44 @@
+// for Node.js interpret
+
+const { default: Othello } = require('../../built/api/models/othello-game')
+const { default: zip } = require('@prezzemolo/zip')
+
+const migrate = async (doc) => {
+ const x = {};
+
+ doc.logs.forEach(log => {
+ log.color = log.color == 'black';
+ });
+
+ const result = await Othello.update(doc._id, {
+ $set: doc.logs
+ });
+
+ return result.ok === 1;
+}
+
+async function main() {
+
+ const count = await Othello.count({});
+
+ const dop = Number.parseInt(process.argv[2]) || 5
+ const idop = ((count - (count % dop)) / dop) + 1
+
+ return zip(
+ 1,
+ async (time) => {
+ console.log(`${time} / ${idop}`)
+ const doc = await Othello.find({}, {
+ limit: dop, skip: time * dop
+ })
+ return Promise.all(doc.map(migrate))
+ },
+ idop
+ ).then(a => {
+ const rv = []
+ a.forEach(e => rv.push(...e))
+ return rv
+ })
+}
+
+main().then(console.dir).catch(console.error)