49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import bcrypt from 'bcryptjs';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
async function main() {
|
|
console.log('Заполнение базы данных...\n');
|
|
|
|
const password = await bcrypt.hash('demo123', 10);
|
|
|
|
const usersData = [
|
|
{ username: 'evgeniy', displayName: 'Евгений', bio: 'Создатель Vortex' },
|
|
{ username: 'anastasia', displayName: 'Анастасия', bio: 'Дизайнер интерфейсов' },
|
|
{ username: 'artem', displayName: 'Артём', bio: 'Frontend разработчик' },
|
|
{ username: 'polina', displayName: 'Полина', bio: 'Backend разработчик' },
|
|
{ username: 'daniil', displayName: 'Даниил', bio: 'DevOps инженер' },
|
|
{ username: 'vladimir', displayName: 'Владимир', bio: 'Product Manager' },
|
|
];
|
|
|
|
const users = await Promise.all(
|
|
usersData.map((u) =>
|
|
prisma.user.upsert({
|
|
where: { username: u.username },
|
|
update: { displayName: u.displayName, bio: u.bio },
|
|
create: {
|
|
username: u.username,
|
|
displayName: u.displayName,
|
|
password,
|
|
bio: u.bio,
|
|
isOnline: false,
|
|
},
|
|
})
|
|
)
|
|
);
|
|
|
|
console.log(`Создано ${users.length} пользователей`);
|
|
|
|
console.log('\n--- Тестовые аккаунты ---');
|
|
console.log('Пароль для всех: demo123\n');
|
|
for (const user of users) {
|
|
console.log(` ${user.username} (${user.displayName})`);
|
|
}
|
|
console.log('\nЗаполнение завершено!');
|
|
}
|
|
|
|
main()
|
|
.catch(console.error)
|
|
.finally(() => prisma.$disconnect());
|