-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathseed.ts
37 lines (33 loc) · 1.12 KB
/
seed.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { db } from '@/repositories';
import { usersTable } from './repositories/schemas/user';
import { userRepository } from './repositories/user.repository';
import { generateIdFromEntropySize } from 'lucia';
try {
const adminEmail = '[email protected]';
console.log('🌱 Seeding...');
const users = await userRepository.getAllUsers();
console.log(users);
console.time(`🌱 Database has been seeded`);
console.time('🧹 Cleaned up the database...');
const adminUser = await userRepository.getUserByEmail(adminEmail);
if (adminUser) {
await userRepository.removeUserByEmail(adminEmail);
}
console.timeEnd('🧹 Cleaned up the database...');
console.time(`🐨 Created admin user`);
await db.insert(usersTable).values({
id: generateIdFromEntropySize(10),
email: adminEmail,
githubId: 17494342,
username: 'dnmct',
name: 'Dan McAtee',
avatarUrl: 'https://avatars.githubusercontent.com/u/17494342?v=4',
role: 'admin',
});
console.timeEnd(`🐨 Created admin user`);
console.timeEnd(`🌱 Database has been seeded`);
} catch (e) {
console.error(e);
} finally {
process.exit(0);
}