43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import "dotenv/config";
|
|
import { db, DBType } from "../src/server/db";
|
|
import { articles, categories, users } from "../src/server/db/schema";
|
|
import fakeArticles from "./fake-articles.json";
|
|
import fakeUsers from "./fake-users.json";
|
|
import fakeCategories from "./fake-categories.json";
|
|
import { generateSlug } from "@/lib/utils";
|
|
import { createId } from "@paralleldrive/cuid2";
|
|
|
|
async function seed() {
|
|
const u = await db
|
|
.insert(users)
|
|
.values(fakeUsers)
|
|
.returning({ id: users.id });
|
|
console.log("Seeded " + u.length + " users");
|
|
|
|
const c = await db
|
|
.insert(categories)
|
|
.values(
|
|
fakeCategories.map(({ name }) => ({ name, slug: generateSlug(name) })),
|
|
)
|
|
.returning({
|
|
id: categories.id,
|
|
});
|
|
console.log("Seeded " + c.length + " categories");
|
|
|
|
const a = await db
|
|
.insert(articles)
|
|
.values(
|
|
fakeArticles.map(({ title }) => ({
|
|
title,
|
|
slug: createId(),
|
|
published: true,
|
|
})),
|
|
)
|
|
.returning({ id: articles.id });
|
|
console.log("Seeded " + a.length + " articles");
|
|
}
|
|
|
|
seed()
|
|
.catch(console.error)
|
|
.finally(() => process.exit());
|