mirror of
https://github.com/fosrl/pangolin.git
synced 2025-05-13 05:40:38 +01:00
clear stale data from db on restart
This commit is contained in:
parent
ae73a2f3f4
commit
ec9d02a735
2 changed files with 81 additions and 0 deletions
79
server/setup/clearStaleData.ts
Normal file
79
server/setup/clearStaleData.ts
Normal file
|
@ -0,0 +1,79 @@
|
|||
import { db } from "@server/db";
|
||||
import {
|
||||
emailVerificationCodes,
|
||||
newtSessions,
|
||||
passwordResetTokens,
|
||||
resourceAccessToken,
|
||||
resourceOtp,
|
||||
resourceSessions,
|
||||
sessions,
|
||||
userInvites
|
||||
} from "@server/db/schema";
|
||||
import logger from "@server/logger";
|
||||
import { lt } from "drizzle-orm";
|
||||
|
||||
export async function clearStaleData() {
|
||||
try {
|
||||
await db
|
||||
.delete(sessions)
|
||||
.where(lt(sessions.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired sessions:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(newtSessions)
|
||||
.where(lt(newtSessions.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired newtSessions:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(emailVerificationCodes)
|
||||
.where(lt(emailVerificationCodes.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired emailVerificationCodes:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(passwordResetTokens)
|
||||
.where(lt(passwordResetTokens.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired passwordResetTokens:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(userInvites)
|
||||
.where(lt(userInvites.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired userInvites:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(resourceAccessToken)
|
||||
.where(lt(resourceAccessToken.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired resourceAccessToken:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(resourceSessions)
|
||||
.where(lt(resourceSessions.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired resourceSessions:", e);
|
||||
}
|
||||
|
||||
try {
|
||||
await db
|
||||
.delete(resourceOtp)
|
||||
.where(lt(resourceOtp.expiresAt, new Date().getTime()));
|
||||
} catch (e) {
|
||||
logger.error("Error clearing expired resourceOtp:", e);
|
||||
}
|
||||
}
|
|
@ -2,12 +2,14 @@ import { ensureActions } from "./ensureActions";
|
|||
import { copyInConfig } from "./copyInConfig";
|
||||
import { setupServerAdmin } from "./setupServerAdmin";
|
||||
import logger from "@server/logger";
|
||||
import { clearStaleData } from "./clearStaleData";
|
||||
|
||||
export async function runSetupFunctions() {
|
||||
try {
|
||||
await copyInConfig(); // copy in the config to the db as needed
|
||||
await setupServerAdmin();
|
||||
await ensureActions(); // make sure all of the actions are in the db and the roles
|
||||
await clearStaleData();
|
||||
} catch (error) {
|
||||
logger.error("Error running setup functions:", error);
|
||||
process.exit(1);
|
||||
|
|
Loading…
Reference in a new issue