typescript-express-starter
Version:
Quick and Easy TypeScript Express Starter
59 lines (51 loc) β’ 1.58 kB
text/typescript
import { Hash } from '@utils/hash';
import { db } from './database';
import { users } from './schema';
import { logger } from '@utils/logger';
async function seed() {
try {
logger.info('π± Starting database seeding...');
// κΈ°μ‘΄ λ°μ΄ν° νμΈ
const existingUsers = await db.select().from(users);
if (existingUsers.length > 0) {
logger.info('π Users already exist, skipping seed...');
return;
}
// ν
μ€νΈ μ¬μ©μ μμ±
const testUsers = [
{
email: 'admin@example.com',
password: await Hash.hashPassword('admin123'),
firstName: 'Admin',
lastName: 'User',
isActive: true,
},
{
email: 'user@example.com',
password: await Hash.hashPassword('user123'),
firstName: 'Test',
lastName: 'User',
isActive: true,
},
{
email: 'inactive@example.com',
password: await Hash.hashPassword('inactive123'),
firstName: 'Inactive',
lastName: 'User',
isActive: false,
},
];
// μ¬μ©μ μ½μ
await db.insert(users).values(testUsers);
logger.info(`β
Seeded ${testUsers.length} users successfully`);
logger.info('π€ Test accounts:');
logger.info(' - admin@example.com (password: admin123)');
logger.info(' - user@example.com (password: user123)');
logger.info(' - inactive@example.com (password: inactive123) [inactive]');
} catch (error) {
logger.error({ error }, 'β Seeding failed:');
} finally {
process.exit(0);
}
}
seed();