带有哈希密码的迁移更新表



我需要在迁移中转换哈希中的字符串密码,我使用此代码,但事务在选择后完成

const users = await queryRunner.query('SELECT * FROM app_user;');
users.map(async user => {
user.password = await bcrypt.hash(user.password, 10);
await queryRunner.query(
`UPDATE app_user SET passsword = '${user.password}' WHERE id = ${user.id}`,
);
});
}```

也许不是最好的解决方案,但我希望它能在中工作

const users = await queryRunner.manager.createQueryBuilder().from('app_user', 'app_user').execute();
if (users.length > 0) {
const passwords = await Promise.all(users.map(user => bcrypt.hash(user.password, 10)));
users.forEach((user, idx) => {
queryRunner.manager
.createQueryBuilder()
.update('app_user')
.set({ password: passwords[idx]})
.where('id = :id', { id: user.id })
.execute();
})
}

最新更新