sendou.ink/scripts/setup.ts
Kalle 6ba4b9d6ff
Better README & getting started (#2284)
* initial

* wip

* wip

* wip

* pr comment

* remove todo

* add a few placeholders

* todos done
2025-05-26 17:57:41 +03:00

34 lines
853 B
TypeScript

import "dotenv/config";
import fs from "node:fs";
import { seed } from "~/db/seed";
import { db } from "~/db/sql";
import { logger } from "~/utils/logger";
async function main() {
// Step 1: Create .env if it doesn't exist
if (!fs.existsSync(".env")) {
logger.info("📄 .env not found. Creating from .env.example...");
fs.copyFileSync(".env.example", ".env");
logger.info(".env created with defaults values");
}
const dbEmpty = !(await db.selectFrom("User").selectAll().executeTakeFirst());
// Step 2: Run migration and seed if db.sqlite3 doesn't exist
if (dbEmpty) {
logger.info("🌱 Seeding database...");
try {
await seed();
logger.info("Database seeded successfully");
} catch (err) {
logger.error(
"Error running migrate or seed scripts:",
(err as Error).message,
);
process.exit(1);
}
}
}
main();