app: lists on meta tables, schema-qualified SQL, typed columns
- lists read/write real lists.* tables via meta.tables/meta.columns and the SECURITY DEFINER meta functions; typed extra columns in the item forms - old numeric list URLs 308-redirect to the slug - include_recurring is boolean, osu accuracy/pp/rate numeric - raw SQL qualified with the new schemas
This commit is contained in:
@@ -22,17 +22,17 @@ try {
|
||||
}[]
|
||||
][]) {
|
||||
const [game] =
|
||||
await tx`select id from tracker_games where slug=${slug} and franchise='call-of-duty'`;
|
||||
await tx`select id from ref.tracker_games where slug=${slug} and franchise='call-of-duty'`;
|
||||
if (!game) throw new Error(`Seed Call of Duty catalog first: ${slug}`);
|
||||
for (let offset = 0; offset < rows.length; offset += 500) {
|
||||
const batch = rows
|
||||
.slice(offset, offset + 500)
|
||||
.map(({ sourceUrl, ...r }) => ({ ...r, game_id: game.id, source_url: sourceUrl }));
|
||||
await tx`insert into tracker_challenges ${tx(batch)} on conflict (game_id,key) do update set name=excluded.name,category=excluded.category,requirement=excluded.requirement,reward=excluded.reward,icon=excluded.icon,target=excluded.target,source_url=excluded.source_url`;
|
||||
await tx`insert into ref.tracker_challenges ${tx(batch)} on conflict (game_id,key) do update set name=excluded.name,category=excluded.category,requirement=excluded.requirement,reward=excluded.reward,icon=excluded.icon,target=excluded.target,source_url=excluded.source_url`;
|
||||
}
|
||||
// Retire removed source definitions only when nobody has saved progress.
|
||||
if (rows.length)
|
||||
await tx`delete from tracker_challenges c where c.game_id=${game.id} and c.key not in ${tx(rows.map((r) => r.key))} and not exists (select 1 from tracker_challenge_progress p where p.challenge_id=c.id)`;
|
||||
await tx`delete from ref.tracker_challenges c where c.game_id=${game.id} and c.key not in ${tx(rows.map((r) => r.key))} and not exists (select 1 from games.tracker_challenge_progress p where p.challenge_id=c.id)`;
|
||||
console.log(`${slug}: ${rows.length} challenge rows`);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user