Add missing migration for Lead table.
This commit is contained in:
parent
9373db8ae6
commit
185c40f470
|
|
@ -36,7 +36,7 @@ yarn-error.log*
|
||||||
next-env.d.ts
|
next-env.d.ts
|
||||||
|
|
||||||
# prisma
|
# prisma
|
||||||
/prisma/migrations/
|
|
||||||
|
|
||||||
# docker
|
# docker
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
import { PrismaClient } from '@prisma/client';
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
console.log('🔄 Starting Database Diagnostics...');
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 1. Test Connection
|
||||||
|
console.log('1️⃣ Testing basic connection...');
|
||||||
|
await prisma.$connect();
|
||||||
|
console.log('✅ Connected to database successfully.');
|
||||||
|
|
||||||
|
// 2. Test Lead Table Existence
|
||||||
|
console.log('2️⃣ Testing Lead table access...');
|
||||||
|
try {
|
||||||
|
const count = await prisma.lead.count();
|
||||||
|
console.log(`✅ Lead table found. Current count: ${count}`);
|
||||||
|
} catch (e: any) {
|
||||||
|
console.error('❌ FAILED to access Lead table.');
|
||||||
|
if (e.code === 'P2021') {
|
||||||
|
console.error(' 👉 Error P2021: The table "Lead" does not exist in the current database.');
|
||||||
|
console.error(' 👉 SOLUTION: Run "npx prisma migrate deploy"');
|
||||||
|
} else {
|
||||||
|
console.error(' 👉 Error:', e.message);
|
||||||
|
}
|
||||||
|
throw e; // rethrow to stop
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Test Writing a dummy lead (optional, rolling back transaction)
|
||||||
|
console.log('3️⃣ Testing write permission...');
|
||||||
|
await prisma.$transaction(async (tx) => {
|
||||||
|
const lead = await tx.lead.create({
|
||||||
|
data: {
|
||||||
|
email: 'test_diagnostic_script@example.com',
|
||||||
|
source: 'diagnostic-script',
|
||||||
|
reprintCost: 0,
|
||||||
|
updatesPerYear: 0,
|
||||||
|
annualSavings: 0
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log('✅ Successfully created test lead with ID:', lead.id);
|
||||||
|
// We purposefully throw an error to rollback this transaction so we don't dirty the DB
|
||||||
|
throw new Error('ROLLBACK_TEST');
|
||||||
|
}).catch((e) => {
|
||||||
|
if (e.message === 'ROLLBACK_TEST') {
|
||||||
|
console.log('✅ Transaction rollback successful (cleaning up test data).');
|
||||||
|
} else {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('\n🎉 ALL CHECKS PASSED! The database is effectively readable and writable.');
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('\n💥 DIAGNOSTICS FAILED');
|
||||||
|
console.error(error);
|
||||||
|
process.exit(1);
|
||||||
|
} finally {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
Loading…
Reference in New Issue