tia/src/scripts/migrate-passwords.ts

29 lines
No EOL
890 B
TypeScript

// Migration script to invalidate old password hashes
// Old format "hash_..." passwords will be invalidated, forcing password reset
import { sql } from "../db";
async function migratePasswords() {
console.log("Finding users with old password hashes...");
// Find users with old hash format
const users = await sql`
SELECT id, email, password_hash FROM users
WHERE password_hash IS NOT NULL
AND password_hash LIKE 'hash_%'
`;
console.log(`Found ${users.length} users with old password hashes`);
for (const user of users) {
console.log(`Invalidating password for ${user.email}...`);
await sql`
UPDATE users SET password_hash = NULL, password_updated_at = NULL
WHERE id = ${user.id}
`;
}
console.log("Migration complete. Users will need to reset password.");
}
migratePasswords().catch(console.error).finally(() => process.exit());