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