Instead of relying on a manual `pnpm db:migrate` step (which was
connecting to a different postgres than the Docker container), the
backend now calls drizzle migrate() before the server starts. This
ensures migrations always run against the correct database on startup.
Also fixes the Dockerfile to copy migrations into dist/migrations so
the path resolves correctly in the compiled output.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>