feat: implement marketing pages, core QR tools, and SEO infrastructure for QR Master

This commit is contained in:
Timo Knuth
2026-04-10 11:21:18 +02:00
parent cc4afb6f51
commit 9a01523fcd
14 changed files with 659 additions and 16 deletions

View File

@@ -227,6 +227,21 @@ openssl rand -base64 32 # NEXTAUTH_SECRET and IP_SALT
- Image optimization enabled in `next.config.mjs`
- Prisma connection pooling recommended for production
## Database Change Policy
**IMPORTANT: No Prisma migrations.** All database schema changes (new columns, new enum values, new tables) must be applied via raw SQL commands directly against the running PostgreSQL instance.
Workflow for schema changes:
1. Write the raw SQL (e.g. `ALTER TABLE`, `ALTER TYPE ... ADD VALUE`)
2. Run via Docker: `npm run docker:db` then execute SQL, or use `docker-compose exec db psql -U postgres -d qrmaster -c "..."`
3. Update `prisma/schema.prisma` to match (so Prisma client types stay in sync)
4. Run `npx prisma generate` to regenerate the client (no `migrate`)
Example — adding an enum value:
```sql
ALTER TYPE "ContentType" ADD VALUE 'BARCODE';
```
## Common Pitfalls
1. **Database Connection**: If "Can't reach database server", ensure Docker is running (`npm run docker:dev`)