docker compose -f docker-compose.dev.yml up -d postgres docker compose -f docker-compose.dev.yml up -d redis docker compose -f docker-compose.production.yml up --build -d --no-deps marketplace docker compose -f docker-compose.production.yml up --build -d --no-deps admin docker compose -f docker-compose.dev.yml --profile full up --build docker compose -f docker-compose.dev.yml --profile dashboard up --build docker compose -f docker-compose.dev.yml --profile marketplace up --build docker compose -f docker-compose.dev.yml --profile api up --build Default dev admin: Email: platform.ops@rentaldrivego.com Password: PlatformOps123! What this means: docker compose -f docker-compose.dev.yml --profile full up --build will no longer reseed or redeploy the DB on every fix. Your data stays as long as you do not run docker compose ... down -v or manually delete the Docker volumes. If you later change the schema and want to apply it without wiping data, run: docker compose -f docker-compose.dev.yml run --rm migrate sh -c "npm run db:deploy" Production was already using a persistent named Postgres volume, so the main issue was the dev bootstrap behavior. Restart the dev stack once for this change to take effect.