mirror of
https://github.com/graphql-hive/console
synced 2026-04-21 14:37:17 +00:00
27 lines
683 B
TypeScript
27 lines
683 B
TypeScript
import { sql, DatabasePoolConnectionType } from 'slonik';
|
|
|
|
export const resetDb = async (conn: DatabasePoolConnectionType) => {
|
|
const migrationTables = ['migrations'];
|
|
|
|
const result = await conn.many<{ tablename: string }>(sql`
|
|
SELECT "tablename"
|
|
FROM "pg_tables"
|
|
WHERE "schemaname" = 'public';
|
|
`);
|
|
|
|
const tablenames = result
|
|
.map(({ tablename }) => tablename)
|
|
.filter((tablename) => !migrationTables.includes(tablename));
|
|
|
|
if (tablenames.length) {
|
|
await conn.query(sql`
|
|
TRUNCATE TABLE
|
|
${sql.join(
|
|
tablenames.map((name) => sql.identifier([name])),
|
|
sql`,`
|
|
)}
|
|
RESTART IDENTITY
|
|
;
|
|
`);
|
|
}
|
|
};
|