33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# Database Authentication Issue Fixed
|
|
|
|
## Problem
|
|
- PostgreSQL authentication was failing with error code 28P01 "password authentication failed for user 'quixotic'"
|
|
- The docker-compose.yml had default password `quixotic123` but .env.docker had different password `GGkM0a6r7pw3F65ZvYbbuOgbt7gO2AoW3JynEk7m9Go=`
|
|
- Secondary issue: table creation conflicts due to SERIAL sequences being created multiple times
|
|
|
|
## Solution
|
|
1. **Password sync**: Removed postgres container and volume to reset with correct password from .env.docker
|
|
```bash
|
|
docker compose down postgres
|
|
docker volume rm quixotic_postgres-data
|
|
docker compose up postgres -d
|
|
```
|
|
|
|
2. **Table creation fix**: Modified database.ts to check table existence before creating:
|
|
- Added proper table existence check using information_schema
|
|
- Removed `CREATE TABLE IF NOT EXISTS` which wasn't handling SERIAL sequences properly
|
|
- Added logging for better debugging
|
|
|
|
## Commands used
|
|
```bash
|
|
docker compose down postgres
|
|
docker volume rm quixotic_postgres-data
|
|
docker compose up postgres -d
|
|
docker compose build quixotic-app
|
|
docker compose up quixotic-app -d
|
|
```
|
|
|
|
## Result
|
|
- Database authentication working
|
|
- No more table creation conflicts
|
|
- App starts successfully with "Database tables already exist" message |