40 lines
1.1 KiB
TypeScript

import { users } from "../models";
import db from ".";
import logger from "../lib/logger";
import { sql } from "drizzle-orm";
import { faker } from "@faker-js/faker";
import queue from "@server/lib/queue";
const seed = async () => {
logger.info("🌿 Seeding database...");
await db.transaction(async (tx) => {
tx.run(sql`DELETE FROM users`);
await tx
.insert(users)
.values({ username: "khairul169", name: "Khairul Hidayat" });
await tx.insert(users).values(
[...Array(50)].map(() => ({
username: faker.internet.userName(),
name: faker.person.fullName(),
location: faker.location.city(),
followers: faker.number.int({ min: 0, max: 1000 }),
following: faker.number.int({ min: 0, max: 1000 }),
points: faker.number.int({ min: 20, max: 3000 }),
commits: faker.number.int({ min: 20, max: 420 }),
lineOfCodes: faker.number.int({ min: 1000, max: 300000 }),
}))
);
});
await queue.add("fetchUserProfile", { userId: 1 });
logger.info("🌱 Database seeded");
process.exit();
};
seed();