| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { sql } from "drizzle-orm"
- import { testDb, disconnect } from "./src/db/db.js"
- async function resetTestDatabase() {
- const db = testDb
- if (!db) {
- console.log("No database connection available, skipping database reset")
- return
- }
- try {
- const tables = await db.execute<{ table_name: string }>(sql`
- SELECT table_name
- FROM information_schema.tables
- WHERE table_schema = 'public'
- AND table_type = 'BASE TABLE';
- `)
- const tableNames = tables.map((t) => t.table_name)
- for (const tableName of tableNames) {
- await db.execute(sql`TRUNCATE TABLE "${sql.raw(tableName)}" CASCADE;`)
- }
- console.log(`[${process.env.DATABASE_URL}] TRUNCATE ${tableNames.join(", ")}`)
- } catch (error) {
- console.error("Error resetting database:", error)
- throw error
- }
- }
- export default async function () {
- await resetTestDatabase()
- return async () => {
- await disconnect()
- }
- }
|