This commit is contained in:
syuilo 2021-11-12 13:39:57 +09:00
parent 0484976afa
commit 4786214e2a
2 changed files with 31 additions and 7 deletions

View File

@ -215,6 +215,7 @@ export function initDb(justBorrow = false, sync = false, forceRecreate = false)
} }
export async function resetDb() { export async function resetDb() {
const reset = async () => {
const conn = await getConnection(); const conn = await getConnection();
const tables = await conn.query(`SELECT relname AS "table" const tables = await conn.query(`SELECT relname AS "table"
FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
@ -222,4 +223,19 @@ export async function resetDb() {
AND C.relkind = 'r' AND C.relkind = 'r'
AND nspname !~ '^pg_toast';`); AND nspname !~ '^pg_toast';`);
await Promise.all(tables.map(t => t.table).map(x => conn.query(`DELETE FROM "${x}" CASCADE`))); await Promise.all(tables.map(t => t.table).map(x => conn.query(`DELETE FROM "${x}" CASCADE`)));
};
for (let i = 1; i <= 3; i++) {
try {
await reset();
} catch (e) {
if (i === 3) {
throw e;
} else {
await new Promise(resolve => setTimeout(resolve, 1000));
continue;
}
}
break;
}
} }

View File

@ -23,6 +23,7 @@ const _filename = __filename;
const _dirname = dirname(_filename); const _dirname = dirname(_filename);
const staticAssets = `${_dirname}/../../../assets/`; const staticAssets = `${_dirname}/../../../assets/`;
const clientAssets = `${_dirname}/../../../../client/assets/`;
const assets = `${_dirname}/../../../../../built/_client_dist_/`; const assets = `${_dirname}/../../../../../built/_client_dist_/`;
// Init app // Init app
@ -59,6 +60,13 @@ router.get('/static-assets/(.*)', async ctx => {
}); });
}); });
router.get('/client-assets/(.*)', async ctx => {
await send(ctx as any, ctx.path.replace('/client-assets/', ''), {
root: clientAssets,
maxage: ms('7 days'),
});
});
router.get('/assets/(.*)', async ctx => { router.get('/assets/(.*)', async ctx => {
await send(ctx as any, ctx.path.replace('/assets/', ''), { await send(ctx as any, ctx.path.replace('/assets/', ''), {
root: assets, root: assets,