30 lines
785 B
TypeScript
30 lines
785 B
TypeScript
|
|
import "dotenv/config";
|
||
|
|
import { drizzle } from "drizzle-orm/neon-http";
|
||
|
|
import { neon } from "@neondatabase/serverless";
|
||
|
|
import { users } from "../src/lib/db/schema";
|
||
|
|
import bcrypt from "bcryptjs";
|
||
|
|
|
||
|
|
const sql = neon(process.env.DATABASE_URL!);
|
||
|
|
const db = drizzle({ client: sql });
|
||
|
|
|
||
|
|
async function seed() {
|
||
|
|
const email = process.env.AGENT_EMAIL;
|
||
|
|
const password = process.env.AGENT_PASSWORD;
|
||
|
|
|
||
|
|
if (!email || !password) {
|
||
|
|
throw new Error("AGENT_EMAIL and AGENT_PASSWORD env vars are required");
|
||
|
|
}
|
||
|
|
|
||
|
|
const passwordHash = await bcrypt.hash(password, 12);
|
||
|
|
|
||
|
|
await db.insert(users).values({ email, passwordHash }).onConflictDoNothing();
|
||
|
|
|
||
|
|
console.log(`Seeded agent account: ${email}`);
|
||
|
|
process.exit(0);
|
||
|
|
}
|
||
|
|
|
||
|
|
seed().catch((err) => {
|
||
|
|
console.error(err);
|
||
|
|
process.exit(1);
|
||
|
|
});
|