Files
LogiFlow/server/db.production.ts
T
michaelschal 27ae1a836f Fix critical production issue with missing SAV ticket data and add emergency recovery
Implement an automatic migration script and an emergency API route to resolve missing columns in the SAV production database, ensuring data integrity and system stability.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 31f9bd88-0285-4787-81b3-31ceeea5a08b
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/31f9bd88-0285-4787-81b3-31ceeea5a08b/nCX75tE
2025-08-14 09:33:19 +00:00

57 lines
1.7 KiB
TypeScript

import { Pool } from 'pg';
import { drizzle } from 'drizzle-orm/node-postgres';
import * as schema from "@shared/schema";
import { runProductionMigrations } from './migrations.production.js';
console.log('🐳 PRODUCTION: Configuring standard PostgreSQL database');
if (!process.env.DATABASE_URL) {
throw new Error("DATABASE_URL must be set for production");
}
// Log connection details (without password)
const dbUrl = new URL(process.env.DATABASE_URL);
console.log('🐳 Database connection:', {
host: dbUrl.hostname,
port: dbUrl.port,
database: dbUrl.pathname.slice(1),
user: dbUrl.username
});
export const pool = new Pool({
connectionString: process.env.DATABASE_URL,
ssl: false, // No SSL for local Docker
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 10000,
});
export const db = drizzle({ client: pool, schema });
// Test connection
pool.on('connect', () => {
console.log('✅ PostgreSQL connection established');
});
pool.on('error', (err) => {
console.error('❌ PostgreSQL connection error:', err);
});
// Run migrations automatically when database is configured
(async () => {
try {
console.log('🔄 DB: Running automatic database migrations...');
await runProductionMigrations();
console.log('✅ DB: Database migrations completed successfully');
} catch (error) {
console.error('❌ DB: Database migrations failed with error:', error);
console.error('❌ DB: Migration failure details:', {
name: error?.name,
message: error?.message,
code: error?.code
});
// Don't fail the application startup for migration errors
}
})();
console.log('✅ Production PostgreSQL database configured');