Last active
October 29, 2016 10:42
-
-
Save vwochnik/c6e708c6d9ccd5d2a614b2394f34e2dc to your computer and use it in GitHub Desktop.
Randomize ghost post dates for sqlite3 database
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var sqlite3 = require('sqlite3').verbose(); | |
var file = process.argv.slice(-1).pop(); | |
var db = new sqlite3.Database(file); | |
var start = new Date("2016-01-01"), | |
end = new Date("2016-10-20"); | |
db.serialize(function() { | |
var stmt = db.prepare("UPDATE posts SET created_at = ?, updated_at = ?, published_at = ? WHERE id = ?") | |
db.each("SELECT id, created_at, updated_at, published_at FROM posts", function(err, row) { | |
if (err) throw new Error(err); | |
var date = randomDate(start, end, 3, 21), | |
sdate = formatDate(date); | |
stmt.run(sdate, sdate, sdate, row.id); | |
}, function() { | |
stmt.finalize(); | |
}); | |
}); | |
db.close(); | |
function formatDate(date) { | |
return date.toISOString().replace('T', ' ').replace(/\..*$/, '') | |
} | |
// adopted from http://stackoverflow.com/questions/31378526/generate-random-date-between-two-dates-and-times-in-javascript | |
function randomDate(start, end, startHour, endHour) { | |
var date = new Date(+start + Math.random() * (end - start)); | |
var hour = startHour + Math.random() * (endHour - startHour) | 0; | |
date.setHours(hour); | |
return date; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment