This is the code that runs https://bandolier.learnjsthehardway.com/ for you to review. It uses the https://git.learnjsthehardway.com/learn-javascript-the-hard-way/bandolier-template to create the documentation for the project.
https://bandolier.learnjsthehardway.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
767 B
28 lines
767 B
const crypto = require("crypto").webcrypto;
|
|
|
|
const random_numbers = (count) => {
|
|
let out = new Uint32Array(count);
|
|
return crypto.getRandomValues(out);
|
|
}
|
|
|
|
exports.up = async (knex) => {
|
|
await knex.schema.alterTable('payment', (table) => {
|
|
table.integer('receipt_id');
|
|
});
|
|
|
|
// stupid but whatever, this only has to run once
|
|
const payments = [...await knex.select(["id"]).from("payment")];
|
|
const rand_ids = [...random_numbers(payments.length)];
|
|
|
|
for (let rec of payments) {
|
|
rec.receipt_id = rand_ids.pop();
|
|
await knex("payment").where({id: rec.id}).update({receipt_id: rec.receipt_id});
|
|
console.log(rec);
|
|
}
|
|
};
|
|
|
|
exports.down = async (knex) => {
|
|
await knex.schema.alterTable('payment', (t) => {
|
|
t.dropColumn("receipt_id");
|
|
});
|
|
};
|
|
|