idempotent migration script

puzzle-ui
Thibault Duplessis 2016-12-08 00:21:32 +01:00
parent 40066caf79
commit f942359b34
1 changed files with 5 additions and 6 deletions

View File

@ -1,23 +1,22 @@
var puzzles = db.puzzle; var puzzles = db.puzzle;
function fullMoveNumber(p) { function fullMoveNumber(p) {
return Math.floor(1 + p.history.split(' ').length / 2); return Math.floor(1 + (p.history.split(' ').length - 1) / 2);
} }
function changeFenMoveNumber(fen) { function changeFenMoveNumber(fen, n) {
parts = fen.split(' '); parts = fen.split(' ');
if (parts[1] === 'b') return fen; parts[parts.length-1] = n;
parts[5] = parseInt(parts[5]) + 1;
return parts.join(' '); return parts.join(' ');
} }
puzzles.find({ puzzles.find({
// _id: 10107
"_id": { "_id": {
"$lt": 60121 "$lt": 60121
} }
}).forEach(function(p) { }).forEach(function(p) {
var newFen = changeFenMoveNumber(p.fen); var newMoveNumber = fullMoveNumber(p);
var newFen = changeFenMoveNumber(p.fen, newMoveNumber);
puzzles.update({ puzzles.update({
_id: p._id _id: p._id
}, { }, {