summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-08 03:58:11 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-08 03:58:11 +0900
commita02ee3a08bac55c9f0b29cb6bc0a15726b7cc3c8 (patch)
treebf3c3dacd69737bf79eea0311fed1ddc504b15a5 /tools
parentPost --> Note (diff)
downloadsharkey-a02ee3a08bac55c9f0b29cb6bc0a15726b7cc3c8.tar.gz
sharkey-a02ee3a08bac55c9f0b29cb6bc0a15726b7cc3c8.tar.bz2
sharkey-a02ee3a08bac55c9f0b29cb6bc0a15726b7cc3c8.zip
Some bug fixes
Diffstat (limited to 'tools')
-rw-r--r--tools/migration/nighthike/12.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/tools/migration/nighthike/12.js b/tools/migration/nighthike/12.js
new file mode 100644
index 0000000000..f4b61e2ee8
--- /dev/null
+++ b/tools/migration/nighthike/12.js
@@ -0,0 +1,58 @@
+// for Node.js interpret
+
+const { default: User } = require('../../../built/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, {
+ $unset: {
+ account: ''
+ },
+ $set: {
+ host: null,
+ hostLower: null,
+ email: user.account.email,
+ links: user.account.links,
+ password: user.account.password,
+ token: user.account.token,
+ twitter: user.account.twitter,
+ line: user.account.line,
+ profile: user.account.profile,
+ lastUsedAt: user.account.lastUsedAt,
+ isBot: user.account.isBot,
+ isPro: user.account.isPro,
+ twoFactorSecret: user.account.twoFactorSecret,
+ twoFactorEnabled: user.account.twoFactorEnabled,
+ clientSettings: user.account.clientSettings,
+ settings: user.account.settings,
+ keypair: user.account.keypair
+ }
+ });
+ 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)