Files
Final-Year-Project/Backend/scripts/migrate-better-auth.ts

48 lines
1.0 KiB
TypeScript

import { and, eq } from 'drizzle-orm';
import { db } from '../db/client';
import { accounts, users } from '../db/schema';
const PROVIDER_ID = 'credential';
const run = async (): Promise<void> => {
const existingUsers = await db.select({
id: users.id,
passwordHash: users.passwordHash,
}).from(users);
let created = 0;
for (const user of existingUsers) {
const account = await db.query.accounts.findFirst({
where: and(
eq(accounts.userId, user.id),
eq(accounts.providerId, PROVIDER_ID),
eq(accounts.accountId, user.id),
),
});
if (account) {
continue;
}
await db.insert(accounts).values({
userId: user.id,
accountId: user.id,
providerId: PROVIDER_ID,
password: user.passwordHash,
});
created += 1;
}
console.log(`Created ${created} credential account(s).`);
};
run()
.then(() => process.exit(0))
.catch((error) => {
console.error('Failed to migrate Better Auth accounts', error);
process.exit(1);
});