Instruction file imported from giuseppePintus/Molino_briganti_task_manager (
.github/instructions/prisma-db.instructions.md). Copyright stays with the author.
Database — Prisma + MariaDB
Setup
- DBMS: MariaDB in container Docker (vedi
task-manager-app/docker-compose.yml). - Charset/collation:
utf8mb4/utf8mb4_unicode_ciovunque (tabelle, colonne, connessione). Vedimigrations/utf8mb4-migration.sqlemigrations/patch-mariadb-utf8mb4.sh. - Setup iniziale:
setup-mariadb.sh+setup-mariadb.sql.
Modelli core (vedi prisma/schema.prisma)
Article— anagrafica prodotto.Inventory— stock per articolo (currentStock,minimumStock,reserved).ShelfPosition— posizioni fisiche (codeunico).ShelfEntry— relazione N:N articolo↔posizione (uniquearticleId+positionCode).StockMovement— audit trail (IN/OUT/ADJUSTMENT).StockAlert— allarmi sotto-scorta.
Regole d'oro
- Ogni modifica a
currentStockoreservedDEVE generare unoStockMovement. Niente update silenziosi. - Vincoli unici esistenti vanno preservati (
Inventory.articleId,ShelfEntry(articleId, positionCode),ShelfPosition.code). - Nuove colonne testuali: tipo
VARCHAResplicito + collationutf8mb4_unicode_ci. - Migrazioni: aggiungi un nuovo file SQL in
migrations/con prefisso data (YYYYMMDD-), non modificare quelli passati. - Prima di una migrazione in produzione: backup manuale (
auto-backup-mariadb.ps1omariadb-backup.sh).
Restore
- Procedura:
mariadb-restore.sh <file.sql>. I dump sono intask-manager-app/backups/emolino-data/backups/. - Mai sovrascrivere il DB di produzione senza dump preventivo dello stato corrente.