Compare commits

...

2 Commits

Author SHA1 Message Date
fcbd082f6d feat: add detailed database configuration logging
- Log whether DATABASE_PASSWORD is set (without revealing value)
- Add timeout and debug options
- Restore correct nested connection structure for Strapi 5
- Add more diagnostic logging to troubleshoot connection issues
2026-02-24 18:26:25 +01:00
183636bceb fix: improve PostgreSQL health checks and expose port 5432
- Add explicit expose directive for port 5432 on both postgres containers
- Improve health check to test specific database and user
- Should help with database connection issues
2026-02-24 18:13:10 +01:00
2 changed files with 32 additions and 11 deletions

View File

@ -3,30 +3,47 @@ import path from 'path';
export default ({ env }) => { export default ({ env }) => {
const client = env('DATABASE_CLIENT', 'sqlite'); const client = env('DATABASE_CLIENT', 'sqlite');
console.log('=== DATABASE CONFIGURATION ===');
console.log('DATABASE_CLIENT:', client); console.log('DATABASE_CLIENT:', client);
console.log('DATABASE_HOST:', env('DATABASE_HOST', 'not-set')); console.log('DATABASE_HOST:', env('DATABASE_HOST', 'not-set'));
console.log('DATABASE_PORT:', env('DATABASE_PORT', 'not-set'));
console.log('DATABASE_USERNAME:', env('DATABASE_USERNAME', 'not-set')); console.log('DATABASE_USERNAME:', env('DATABASE_USERNAME', 'not-set'));
console.log('DATABASE_NAME:', env('DATABASE_NAME', 'not-set')); console.log('DATABASE_NAME:', env('DATABASE_NAME', 'not-set'));
console.log('DATABASE_PASSWORD:', env('DATABASE_PASSWORD') ? '***SET***' : '***NOT SET***');
console.log('DATABASE_SSL:', env('DATABASE_SSL', 'not-set'));
if (client === 'postgres') { if (client === 'postgres') {
return { const config = {
connection: { connection: {
client: 'postgres', client: 'postgres',
host: env('DATABASE_HOST', 'localhost'), connection: {
port: env.int('DATABASE_PORT', 5432), host: env('DATABASE_HOST', 'localhost'),
database: env('DATABASE_NAME', 'strapi'), port: env.int('DATABASE_PORT', 5432),
user: env('DATABASE_USERNAME', 'strapi'), database: env('DATABASE_NAME', 'strapi'),
password: env('DATABASE_PASSWORD', 'strapi'), user: env('DATABASE_USERNAME', 'strapi'),
ssl: env.bool('DATABASE_SSL', false), password: env('DATABASE_PASSWORD', 'strapi'),
pool: { min: 2, max: 10 }, ssl: env.bool('DATABASE_SSL', false),
},
pool: {
min: env.int('DATABASE_POOL_MIN', 2),
max: env.int('DATABASE_POOL_MAX', 10),
},
acquireConnectionTimeout: env.int('DATABASE_TIMEOUT', 60000),
debug: env.bool('DATABASE_DEBUG', false),
}, },
}; };
console.log('Using PostgreSQL configuration');
return config;
} }
console.log('Using SQLite configuration');
return { return {
connection: { connection: {
client: 'sqlite', client: 'sqlite',
filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')), connection: {
filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')),
},
useNullAsDefault: true, useNullAsDefault: true,
}, },
}; };

View File

@ -22,8 +22,10 @@ services:
POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
volumes: volumes:
- placebo-postgres-backend-data:/var/lib/postgresql/data - placebo-postgres-backend-data:/var/lib/postgresql/data
expose:
- "5432"
healthcheck: healthcheck:
test: ['CMD-SHELL', 'pg_isready'] test: ['CMD-SHELL', 'pg_isready -U placebo_user -d placebo_backend_db']
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 10 retries: 10
@ -41,8 +43,10 @@ services:
POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
volumes: volumes:
- placebo-postgres-cms-data:/var/lib/postgresql/data - placebo-postgres-cms-data:/var/lib/postgresql/data
expose:
- "5432"
healthcheck: healthcheck:
test: ['CMD-SHELL', 'pg_isready'] test: ['CMD-SHELL', 'pg_isready -U placebo_user -d placebo_cms_db']
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 10 retries: 10