chore: import upstream snapshot with attribution
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
import * as mocks from '../../../__fixtures__/exam-environment-exam.js';
|
||||
import { MONGOHQ_URL } from '../../../src/utils/env.js';
|
||||
|
||||
const prisma = new PrismaClient({
|
||||
datasources: {
|
||||
db: {
|
||||
url: MONGOHQ_URL
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
async function main() {
|
||||
await prisma.$connect();
|
||||
|
||||
await prisma.examEnvironmentExamAttempt.deleteMany({});
|
||||
await prisma.examEnvironmentGeneratedExam.deleteMany({});
|
||||
await prisma.examEnvironmentExam.deleteMany({});
|
||||
await prisma.examEnvironmentChallenge.deleteMany({});
|
||||
|
||||
await prisma.examEnvironmentExam.create({ data: mocks.exam });
|
||||
await prisma.examEnvironmentGeneratedExam.create({
|
||||
data: mocks.generatedExam
|
||||
});
|
||||
await prisma.examEnvironmentExamAttempt.create({ data: mocks.examAttempt });
|
||||
|
||||
await prisma.examEnvironmentChallenge.create({
|
||||
data: mocks.examEnvironmentChallenge
|
||||
});
|
||||
}
|
||||
|
||||
void main();
|
||||
@@ -0,0 +1,42 @@
|
||||
//! Check the records on the database matches the Prisma schema
|
||||
//!
|
||||
//! This script should be run, before any deployments with Exam schema changes.
|
||||
//! WARNING: This script queries every single record in the `Env<>` collections.
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library.js';
|
||||
import { MONGOHQ_URL } from '../../../src/utils/env.js';
|
||||
|
||||
const prisma = new PrismaClient({
|
||||
datasources: {
|
||||
db: {
|
||||
url: MONGOHQ_URL
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
async function main() {
|
||||
await prisma.$connect();
|
||||
try {
|
||||
const examEnvironmentExam = await prisma.examEnvironmentExam.findMany();
|
||||
const examEnvironmentGeneratedExam =
|
||||
await prisma.examEnvironmentGeneratedExam.findMany();
|
||||
const examEnvironmentExamAttempt =
|
||||
await prisma.examEnvironmentExamAttempt.findMany();
|
||||
|
||||
console.log('Number of exams:', examEnvironmentExam.length);
|
||||
console.log(
|
||||
'Number of generated exams:',
|
||||
examEnvironmentGeneratedExam.length
|
||||
);
|
||||
console.log('Number of exam attempts:', examEnvironmentExamAttempt.length);
|
||||
// NOTE: This is not strictly true. E.g. If a `Boolean` becomes an `Int`, Prisma converts it instead of throwing.
|
||||
console.log('\nSUCCESS! The database schema matches the Prisma schema.');
|
||||
} catch (error) {
|
||||
if (error instanceof PrismaClientKnownRequestError) {
|
||||
console.log(error.message);
|
||||
console.info('\nCHECK DATABASE SCHEMA!');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void main();
|
||||
Reference in New Issue
Block a user