logipedia/seed-data/index.ts

51 lines
1.3 KiB
TypeScript

import "dotenv/config";
import { db } from "../src/server/db";
import { articles, categories, users } from "../src/server/db/schema";
async function seed() {
const usersData = Array.from({ length: 100 }).map((_, i) => ({
name: `User ${i + 1}`,
email: `user${i + 1}@example.com`,
createdAt: new Date(Date.now() + i),
}));
const u = await db
.insert(users)
.values(usersData)
.returning({ id: users.id });
console.log("Seeded " + u.length + " users");
const categoriesData = Array.from({ length: 250 }).map((_, i) => ({
name: `Kategorie ${i + 1}`,
slug: `Kategorie-${i + 1}`,
createdAt: new Date(Date.now() + i),
}));
const c = await db.insert(categories).values(categoriesData).returning({
id: categories.id,
});
console.log("Seeded " + c.length + " categories");
const articlesData = Array.from({ length: 500 }).map((_, i) => ({
title: `Artikel ${i + 1}`,
slug: `Artikel-${i + 1}`,
createdAt: new Date(Date.now() + i * 5),
published: true,
}));
const a = await db
.insert(articles)
.values(articlesData)
.returning({ id: articles.id });
console.log("Seeded " + a.length + " articles");
}
async function init() {
try {
await seed();
} catch (error) {
console.error(error);
} finally {
process.exit();
}
}
init();