Explorar el Código

add user and domain seeds

Pouria Ezzati hace 1 año
padre
commit
098e2e385f
Se han modificado 3 ficheros con 66 adiciones y 0 borrados
  1. 2 0
      package.json
  2. 33 0
      seeds/dummy_domains.js
  3. 31 0
      seeds/dummy_users.js

+ 2 - 0
package.json

@@ -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 - 0
seeds/dummy_domains.js

@@ -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 - 0
seeds/dummy_users.js

@@ -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,
+}