summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-03-28 13:06:26 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-03-28 13:06:26 +0900
commite802198b276c4bb9e908518446b45673854b90f4 (patch)
treed43e113ced74daaa0829aa8da803b6baa21e0e47 /tools
parentwip (diff)
parent#1294 (diff)
downloadsharkey-e802198b276c4bb9e908518446b45673854b90f4.tar.gz
sharkey-e802198b276c4bb9e908518446b45673854b90f4.tar.bz2
sharkey-e802198b276c4bb9e908518446b45673854b90f4.zip
Merge remote-tracking branch 'refs/remotes/origin/master' into #1288-2
Diffstat (limited to 'tools')
-rw-r--r--tools/migration/node.2018-03-28.appname.js40
-rw-r--r--tools/migration/node.2018-03-28.username.js40
2 files changed, 80 insertions, 0 deletions
diff --git a/tools/migration/node.2018-03-28.appname.js b/tools/migration/node.2018-03-28.appname.js
new file mode 100644
index 0000000000..9f16e47202
--- /dev/null
+++ b/tools/migration/node.2018-03-28.appname.js
@@ -0,0 +1,40 @@
+// for Node.js interpret
+
+const { default: App } = require('../../built/api/models/app');
+const { generate } = require('../../built/crypto_key');
+const { default: zip } = require('@prezzemolo/zip')
+
+const migrate = async (app) => {
+ const result = await User.update(app._id, {
+ $set: {
+ 'name_id': app.name_id.replace(/\-/g, '_'),
+ 'name_id_lower': app.name_id_lower.replace(/\-/g, '_')
+ }
+ });
+ return result.ok === 1;
+}
+
+async function main() {
+ const count = await App.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 App.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)
diff --git a/tools/migration/node.2018-03-28.username.js b/tools/migration/node.2018-03-28.username.js
new file mode 100644
index 0000000000..2222152101
--- /dev/null
+++ b/tools/migration/node.2018-03-28.username.js
@@ -0,0 +1,40 @@
+// for Node.js interpret
+
+const { default: User } = require('../../built/api/models/user');
+const { generate } = require('../../built/crypto_key');
+const { default: zip } = require('@prezzemolo/zip')
+
+const migrate = async (user) => {
+ const result = await User.update(user._id, {
+ $set: {
+ 'username': user.username.replace(/\-/g, '_'),
+ 'username_lower': user.username_lower.replace(/\-/g, '_')
+ }
+ });
+ return result.ok === 1;
+}
+
+async function main() {
+ const count = await User.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 User.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)