diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-03-28 13:05:30 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-03-28 13:05:36 +0900 |
| commit | eb443709bfcda81c329b51f95bf02cef85932456 (patch) | |
| tree | 88ae1d63372600bce62d42d3e8227ecd3842877e /tools | |
| parent | Update README.md (diff) | |
| download | sharkey-eb443709bfcda81c329b51f95bf02cef85932456.tar.gz sharkey-eb443709bfcda81c329b51f95bf02cef85932456.tar.bz2 sharkey-eb443709bfcda81c329b51f95bf02cef85932456.zip | |
#1294
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/migration/node.2018-03-28.appname.js | 40 | ||||
| -rw-r--r-- | tools/migration/node.2018-03-28.username.js | 40 |
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) |