Dev, Test, and Prod DBs separated. .env is unified now.
This commit is contained in:
@@ -23,11 +23,27 @@ const app = express();
|
||||
// Ensure a default admin user exists on startup
|
||||
// -------------------------------------------------------------------
|
||||
async function ensureAdminUser() {
|
||||
const adminEmail = process.env.ADMIN_EMAIL;
|
||||
const adminPassword = process.env.ADMIN_PASSWORD;
|
||||
const mode = process.env.APP_MODE || 'dev';
|
||||
let adminEmail, adminPassword;
|
||||
|
||||
switch (mode) {
|
||||
case 'test':
|
||||
adminEmail = process.env.ADMIN_EMAIL_TEST;
|
||||
adminPassword = process.env.ADMIN_PASSWORD_TEST;
|
||||
break;
|
||||
case 'prod':
|
||||
adminEmail = process.env.ADMIN_EMAIL_PROD;
|
||||
adminPassword = process.env.ADMIN_PASSWORD_PROD;
|
||||
break;
|
||||
case 'dev':
|
||||
default:
|
||||
adminEmail = process.env.ADMIN_EMAIL_DEV;
|
||||
adminPassword = process.env.ADMIN_PASSWORD_DEV;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!adminEmail || !adminPassword) {
|
||||
console.warn('⚠️ ADMIN_EMAIL or ADMIN_PASSWORD not set in .env. Skipping default admin creation.');
|
||||
console.warn(`⚠️ Admin credentials for mode ${mode} not found in .env. Skipping default admin creation.`);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,10 +10,32 @@ declare global {
|
||||
var prisma: PrismaClient | undefined;
|
||||
}
|
||||
|
||||
const dbUrl = process.env.DATABASE_URL;
|
||||
const mode = process.env.APP_MODE || 'dev';
|
||||
console.log(`[Prisma] Initializing in ${mode.toUpperCase()} mode`);
|
||||
|
||||
let dbUrl: string | undefined;
|
||||
|
||||
switch (mode) {
|
||||
case 'test':
|
||||
dbUrl = process.env.DATABASE_URL_TEST;
|
||||
break;
|
||||
case 'prod':
|
||||
dbUrl = process.env.DATABASE_URL_PROD;
|
||||
break;
|
||||
case 'dev':
|
||||
default:
|
||||
dbUrl = process.env.DATABASE_URL_DEV;
|
||||
break;
|
||||
}
|
||||
|
||||
// Fallback to generic DATABASE_URL if specific one is missing
|
||||
if (!dbUrl) {
|
||||
console.warn(`[Prisma] DATABASE_URL_${mode.toUpperCase()} not found, falling back to DATABASE_URL`);
|
||||
dbUrl = process.env.DATABASE_URL;
|
||||
}
|
||||
|
||||
if (!dbUrl) {
|
||||
throw new Error("DATABASE_URL environment variable is not set. Please check your .env file.");
|
||||
throw new Error(`DATABASE_URL environment variable is not set for mode ${mode}. Please check your .env file.`);
|
||||
}
|
||||
|
||||
console.log('Initializing Prisma Adapter with URL:', dbUrl);
|
||||
|
||||
@@ -396,7 +396,7 @@ router.post('/active/log-set', async (req: any, res) => {
|
||||
});
|
||||
|
||||
if (plan) {
|
||||
const planExercises: { id: string }[] = JSON.parse(plan.exercises);
|
||||
const planExercises: { id: string }[] = JSON.parse(plan.exercises || '[]');
|
||||
const allPerformedSets = await prisma.workoutSet.findMany({
|
||||
where: { sessionId: activeSession.id }
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user