Skip to content

Commit 11bf8fb

Browse files
committed
Fixed issues with migrations when merging
1 parent f9dcad9 commit 11bf8fb

File tree

6 files changed

+93
-122
lines changed

6 files changed

+93
-122
lines changed

migrations/create-helpTimers.mjs

Lines changed: 0 additions & 27 deletions
This file was deleted.

migrations/create-judgeGroups.mjs

Lines changed: 0 additions & 34 deletions
This file was deleted.

migrations/create-judges.mjs

Lines changed: 0 additions & 60 deletions
This file was deleted.

migrations/create-teams.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export async function up(db) {
55
validator: {
66
$jsonSchema: {
77
bsonType: 'object',
8-
title: 'Team Object Validation',
8+
title: 'Teams Object Validation',
99
required: ['number', 'name', 'tracks'],
1010
properties: {
1111
_id: {

migrations/create-userToEvents.mjs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
export async function up(db) {
2+
await db.createCollection('userToEvents', {
3+
validator: {
4+
$jsonSchema: {
5+
bsonType: 'object',
6+
title: 'userToEvents Object Validation',
7+
required: ['user_id', 'event_id'],
8+
properties: {
9+
_id: {
10+
bsonType: 'objectId',
11+
description: '_id must be an ObjectId',
12+
},
13+
user_id: {
14+
bsonType: 'objectId',
15+
description: 'user_id must be an ObjectId',
16+
},
17+
event_id: {
18+
bsonType: 'objectId',
19+
description: 'event_id must be an ObjectId',
20+
},
21+
},
22+
additionalProperties: false,
23+
},
24+
},
25+
});
26+
}
27+
28+
export async function down(db) {
29+
await db.collection('userToEvents').drop();
30+
}

migrations/create-users.mjs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
export async function up(db) {
2+
await db.createCollection('users', {
3+
validator: {
4+
$jsonSchema: {
5+
bsonType: 'object',
6+
title: 'Users Object Validation',
7+
required: ['name', 'email', 'password', 'role'],
8+
properties: {
9+
_id: {
10+
bsonType: 'objectId',
11+
description: '_id must be an ObjectId',
12+
},
13+
name: {
14+
bsonType: 'string',
15+
description: 'name must be a string',
16+
},
17+
email: {
18+
bsonType: 'string',
19+
pattern: '^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,})$',
20+
description: 'email must be a string and have a valid format',
21+
},
22+
password: {
23+
bsonType: 'string',
24+
description: 'encrypted password must be a string',
25+
},
26+
role: {
27+
enum: ['hacker', 'judge', 'admin'],
28+
description: 'role must be either hacker, judge, or admin',
29+
},
30+
specialties: {
31+
bsonType: 'array',
32+
description: 'specialties must be an array of valid string values',
33+
items: {
34+
enum: ['tech', 'business', 'design'],
35+
description: 'specialty must be either tech, business, or design',
36+
},
37+
},
38+
position: {
39+
enum: ['developer', 'designer', 'pm', 'other'],
40+
description:
41+
'position must be either developer, designer, pm, or other',
42+
},
43+
is_beginner: {
44+
bsonType: 'bool',
45+
description: 'is_beginner must be a boolean',
46+
},
47+
starter_kit_stage: {
48+
bsonType: 'int',
49+
maximum: 4,
50+
minimum: 1,
51+
description: 'start_kit_stage must be an integer',
52+
},
53+
},
54+
additionalProperties: false,
55+
},
56+
},
57+
});
58+
}
59+
60+
export async function down(db) {
61+
await db.collection('users').drop();
62+
}

0 commit comments

Comments
 (0)