39 lines
1,005 B
TypeScript
39 lines
1,005 B
TypeScript
|
|
import { eq, isNull } from "drizzle-orm";
|
||
|
|
import { db } from "~/server/db";
|
||
|
|
import * as schema from "~/database/schema";
|
||
|
|
import { generateFlagConfig } from "~/lib/flag-generator";
|
||
|
|
|
||
|
|
async function main() {
|
||
|
|
const users = await db.query.users.findMany({
|
||
|
|
where: isNull(schema.users.flagConfig),
|
||
|
|
});
|
||
|
|
const teams = await db.query.teams.findMany({
|
||
|
|
where: isNull(schema.teams.flagConfig),
|
||
|
|
});
|
||
|
|
|
||
|
|
for (const user of users) {
|
||
|
|
await db
|
||
|
|
.update(schema.users)
|
||
|
|
.set({ flagConfig: generateFlagConfig(user.id), updatedAt: new Date() })
|
||
|
|
.where(eq(schema.users.id, user.id));
|
||
|
|
}
|
||
|
|
|
||
|
|
for (const team of teams) {
|
||
|
|
await db
|
||
|
|
.update(schema.teams)
|
||
|
|
.set({ flagConfig: generateFlagConfig(team.id), updatedAt: new Date() })
|
||
|
|
.where(eq(schema.teams.id, team.id));
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log(`Backfilled ${users.length} users and ${teams.length} teams.`);
|
||
|
|
}
|
||
|
|
|
||
|
|
main()
|
||
|
|
.then(() => {
|
||
|
|
process.exit(0);
|
||
|
|
})
|
||
|
|
.catch((error) => {
|
||
|
|
console.error(error);
|
||
|
|
process.exit(1);
|
||
|
|
});
|