-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmigrate_users.js
More file actions
58 lines (48 loc) · 1.8 KB
/
migrate_users.js
File metadata and controls
58 lines (48 loc) · 1.8 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
require('dotenv').config();
const mongoose = require('mongoose');
const Role = require('./models/role.model');
const migrateUsers = async () => {
try {
await mongoose.connect(process.env.MONGO_URI);
console.log('Connected to MongoDB');
const adminRole = await Role.findOne({ slug: 'admin' });
const headRole = await Role.findOne({ slug: 'head' });
const memberRole = await Role.findOne({ slug: 'member' });
if (!adminRole || !headRole || !memberRole) {
console.error('Roles not found. Run seed_roles.js first.');
process.exit(1);
}
const db = mongoose.connection.db;
const usersCollection = db.collection('users');
// Update Admins
const adminUpdate = await usersCollection.updateMany(
{ role: 'Admin' },
{ $set: { role: adminRole._id } }
);
console.log(`Updated ${adminUpdate.modifiedCount} Admins`);
// Update Heads
const headUpdate = await usersCollection.updateMany(
{ role: 'Head' },
{ $set: { role: headRole._id } }
);
console.log(`Updated ${headUpdate.modifiedCount} Heads`);
// Update Members
const memberUpdate = await usersCollection.updateMany(
{ role: 'Member' },
{ $set: { role: memberRole._id } }
);
console.log(`Updated ${memberUpdate.modifiedCount} Members`);
// Also catch lowercase or default cases if any
const defaultAvailable = await usersCollection.updateMany(
{ role: { $nin: [adminRole._id, headRole._id, memberRole._id] } },
{ $set: { role: memberRole._id } }
);
console.log(`Updated ${defaultAvailable.modifiedCount} users to default Member role`);
console.log('User migration completed successfully');
process.exit(0);
} catch (error) {
console.error('Error migrating users:', error);
process.exit(1);
}
};
migrateUsers();