# Backend ## PostgreSQL The API targets PostgreSQL through EF Core 8 and `Npgsql.EntityFrameworkCore.PostgreSQL`. Default local development connection string: ```text Host=localhost;Port=5433;Database=vtuber_star_awards_dev;Username=postgres;Password=postgres ``` You can override it with: - `Backend/appsettings.Development.json` - environment variable `VTSA_POSTGRES` If Docker is available locally, start a dev database from the repository root with: ```bash docker compose -f docker-compose.dev.yml up -d ``` ## Commands Restore and build: ```bash dotnet restore dotnet build ``` Create a migration: ```bash dotnet ef migrations add InitialCreate ``` Generate a SQL migration script: ```bash dotnet ef migrations script 0 20260617060000_InitialCreate --output Migrations/InitialCreate.sql ``` Apply migrations once PostgreSQL is running: ```bash dotnet ef database update ``` Fallback bootstrap if `dotnet ef` is not usable in the current environment: ```bash psql "Host=localhost Port=5433 Database=vtuber_star_awards_dev Username=postgres Password=postgres" -f Migrations/InitialCreate.manual.sql ``` Run the API: ```bash ASPNETCORE_ENVIRONMENT=Development dotnet run ``` Check the API and database wiring: ```bash curl http://localhost:5084/api/health curl http://localhost:5084/api/health/database ``` Development auth/session: ```bash curl -X POST http://localhost:5084/api/auth/dev-login \ -H "Content-Type: application/json" \ -d '{"twitchUserId":"admin_demo","displayName":"Admin Demo","role":"admin"}' ```