Files
buzz/util/remap.ts
T

39 lines
1.0 KiB
TypeScript
Executable File

import { eq } from "drizzle-orm";
import { db } from "@/lib/db";
import { tierlistVersions } from "@/lib/db/schema";
const dat = await Bun.file("god.sql").text();
const matches = dat.matchAll(/^([a-z0-9-_]+)\t([a-zA-Z ]+)$/gm);
const mapping = Object.fromEntries(
[...matches].map(([_, old, n]) => [old, n.toLowerCase().replace(/ /g, "_")]),
);
// console.log(mapping);
const versions = await db
.select({ id: tierlistVersions.id, placements: tierlistVersions.placements })
.from(tierlistVersions);
for (const { placements } of versions) {
console.log({
placements: Object.fromEntries(
Object.entries(placements).map(([k, v]) => [k, v.map((c) => mapping[c])]),
),
});
}
await db.transaction(async (tx) => {
for (const { placements, id } of versions) {
await tx
.update(tierlistVersions)
.set({
placements: Object.fromEntries(
Object.entries(placements).map(([k, v]) => [
k,
v.map((c) => mapping[c]),
]),
),
})
.where(eq(tierlistVersions.id, id));
}
});