Files
LogiFlow/server/db.production.ts
T
michaelschal 37092a95ba Enable automatic database updates for production environments
Adds automatic execution of database migrations, including schema modifications for the Service After-Sales (SAV) module, upon server startup.

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/EXHO0Ia
2025-08-14 09:24:47 +00:00

52 lines
1.5 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('🔄 Running automatic database migrations...');
await runProductionMigrations();
console.log('✅ Database migrations completed');
} catch (error) {
console.error('❌ Database migrations failed:', error);
// Don't fail the application startup for migration errors
}
})();
console.log('✅ Production PostgreSQL database configured');