mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-11 17:27:31 +02:00
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
57 lines
1.7 KiB
TypeScript
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'); |