import mysql from 'mysql2/promise' import bcrypt from 'bcrypt' import dotenv from 'dotenv' dotenv.config({ path: '../.env' }) async function hashPasswords() { const db = await mysql.createConnection({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, port: process.env.DB_PORT, }) try { const [workers] = await db.execute('SELECT id, password_hash FROM workers') for (const worker of workers) { if (worker.password_hash && !worker.password_hash.startsWith('$2b$')) { const saltRounds = 10 const hashedPassword = await bcrypt.hash(worker.password_hash, saltRounds) await db.execute('UPDATE workers SET password_hash = ? WHERE id = ?', [ hashedPassword, worker.id, ]) console.log(`Hashed password for worker with ID: ${worker.id}`) } } console.log('Password hashing complete.') } catch (error) { console.error('Error hashing passwords:', error) } finally { await db.end() } } hashPasswords()