add user and domain seeds

This commit is contained in:
Pouria Ezzati 2024-12-25 15:04:57 +03:30
parent d1c28ff302
commit 098e2e385f
3 changed files with 66 additions and 0 deletions

View File

@ -10,6 +10,8 @@
"start": "npm run migrate && cross-env NODE_ENV=production node server/server.js",
"migrate": "knex migrate:latest",
"migrate:make": "knex migrate:make",
"seed:run": "knex seed:run",
"seed:make": "knex seed:make",
"docs:build": "cd docs/api && node generate && cd ../.."
},
"repository": {

33
seeds/dummy_domains.js Normal file
View File

@ -0,0 +1,33 @@
const nanoid = require("nanoid");
const { v4: uuid } = require("uuid");
function createDomain() {
return {
address: nanoid(Math.floor(Math.random() * 10) + 10) + ".com",
homepage: Math.random() > 0.7 ? nanoid(Math.floor(Math.random() * 10) + 3) + ".com" : null,
banned: Math.random() < 0.05,
user_id: Math.random() > 0.2 ? Math.floor(Math.random() * 1_000_000) : null,
uuid: uuid(),
}
}
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
async function seed(knex) {
// creating domains
let domains = [];
for (let i = 0; i < 1_000_000; ++i) {
domains.push(createDomain());
if (i % 1000 === 0) {
await knex.batchInsert("domains", domains, domains.length);
domains = [];
}
}
};
module.exports = {
seed,
}

31
seeds/dummy_users.js Normal file
View File

@ -0,0 +1,31 @@
const nanoid = require("nanoid");
function createUser() {
return {
email: nanoid(Math.floor(Math.random() * 10) + 10) + "@email.com",
password: nanoid(60),
verified: Math.random() > 0.1,
banned: Math.random() < 0.05,
}
}
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
async function seed(knex) {
// creating users
let users = [];
for (let i = 0; i < 1_000_000; ++i) {
users.push(createUser());
if (i % 1000 === 0) {
await knex.batchInsert("users", users, users.length);
users = [];
}
}
};
module.exports = {
seed,
}