diff --git a/migrations/00000000000000-bootstrap-legacy-collections.mjs b/migrations/00000000000000-bootstrap-legacy-collections.mjs new file mode 100644 index 00000000..c4a4d9b1 --- /dev/null +++ b/migrations/00000000000000-bootstrap-legacy-collections.mjs @@ -0,0 +1,15 @@ +import { up as createEvents } from './create-events.mjs'; +import { up as createSubmissions } from './create-submissions.mjs'; +import { up as createTeams } from './create-teams.mjs'; +import { up as createUserToEvents } from './create-userToEvents.mjs'; +import { up as createUsers } from './create-users.mjs'; + +export async function up(db) { + await createUsers(db); + await createEvents(db); + await createSubmissions(db); + await createTeams(db); + await createUserToEvents(db); +} + +export async function down() {} diff --git a/migrations/create-events.mjs b/migrations/create-events.mjs index b7cc8922..b0dd2ad1 100644 --- a/migrations/create-events.mjs +++ b/migrations/create-events.mjs @@ -1,4 +1,6 @@ export async function up(db) { + if (await db.listCollections({ name: 'events' }).hasNext()) return; + await db.createCollection('events', { validator: { $jsonSchema: { diff --git a/migrations/create-submissions.mjs b/migrations/create-submissions.mjs index aff98a22..57b3dc6c 100644 --- a/migrations/create-submissions.mjs +++ b/migrations/create-submissions.mjs @@ -1,4 +1,6 @@ export async function up(db) { + if (await db.listCollections({ name: 'submissions' }).hasNext()) return; + await db.createCollection('submissions', { validator: { $jsonSchema: { diff --git a/migrations/create-teams.mjs b/migrations/create-teams.mjs index 330eb2ec..475f0fff 100644 --- a/migrations/create-teams.mjs +++ b/migrations/create-teams.mjs @@ -9,6 +9,8 @@ const data = JSON.parse(fs.readFileSync(dataPath, 'utf8')); const tracks = [...new Set(data.tracks)]; export async function up(db) { + if (await db.listCollections({ name: 'teams' }).hasNext()) return; + await db.createCollection('teams', { validator: { $jsonSchema: { diff --git a/migrations/create-userToEvents.mjs b/migrations/create-userToEvents.mjs index 0917ed75..aa4c2fbe 100644 --- a/migrations/create-userToEvents.mjs +++ b/migrations/create-userToEvents.mjs @@ -1,4 +1,6 @@ export async function up(db) { + if (await db.listCollections({ name: 'userToEvents' }).hasNext()) return; + await db.createCollection('userToEvents', { validator: { $jsonSchema: { diff --git a/migrations/create-users.mjs b/migrations/create-users.mjs index fbd842c1..96f8439c 100644 --- a/migrations/create-users.mjs +++ b/migrations/create-users.mjs @@ -9,6 +9,8 @@ const data = JSON.parse(fs.readFileSync(dataPath, 'utf8')); const domains = [...new Set(data.domains)]; export async function up(db) { + if (await db.listCollections({ name: 'users' }).hasNext()) return; + await db.createCollection('users', { validator: { $jsonSchema: { diff --git a/scripts/generateData.mjs b/scripts/generateData.mjs index 23ebbe01..37875d04 100644 --- a/scripts/generateData.mjs +++ b/scripts/generateData.mjs @@ -4,6 +4,7 @@ import data from '../app/_data/db_validation_data.json' with { type: 'json' }; const specialties = [...new Set(data.domains)]; const tracks = [...new Set(data.tracks)]; +const panelTracks = [...new Set(data.panelTracks)]; function shuffleSpecialties(specialties) { const shuffledSpecialties = [...specialties]; @@ -204,7 +205,7 @@ function generateData(collectionName, numDocuments, existingData = {}) { }; }); } else if (collectionName === 'panels') { - const trackNames = tracks; + const trackNames = panelTracks; const trackTypes = trackNames.reduce((acc, trackName) => { acc[trackName] = faker.helpers.arrayElement(specialties);