yann64
|
236d37976c
|
Compatibilité MySQL + suppression de Redis comme dépendance requise
DbCompat (app/Support/DbCompat.php) :
- like() → ilike (pgsql) ou like (mysql)
- jsonRegexRaw() → data::text ~* ? (pgsql) ou CAST(data AS CHAR) REGEXP ? (mysql)
- ftsRaw() → to_tsvector/plainto_tsquery (pgsql) ou null/fallback LIKE (mysql)
- generatedJsonCol() → syntaxe colonne générée JSON selon le SGBD
- generatedJsonNestedCol() → idem pour champs imbriqués
Migrations :
- create_releves_table : JSON/JSONB selon SGBD, colonnes générées adaptées,
index GIN uniquement pour PostgreSQL
Controllers :
- LieuController (search + index) : ilike → DbCompat::like()
- Admin\UserController (index) : ilike → DbCompat::like()
- RechercheController : FTS + regex → DbCompat, fallback LIKE MySQL
- ExportController : regex → DbCompat::jsonRegexRaw()
UpdateService :
- backupDatabase() : pg_dump (pgsql) ou mysqldump (mysql)
- restoreBackup() : psql (pgsql) ou mysql (mysql)
Docker :
- docker-compose.yml : suppression Redis (plus requis)
- docker-compose.mysql.yml : nouveau fichier pour dev MySQL
- docker-compose.prod.yml : suppression Redis, DB_IMAGE configurable,
CACHE_STORE/SESSION_DRIVER/QUEUE_CONNECTION → database par défaut
.env.example :
- DB_PORT commenté avec les deux valeurs (5432/3306)
- CACHE_STORE et QUEUE_CONNECTION commentés (database par défaut)
- Redis marqué optionnel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-04 18:13:42 +02:00 |
|
yann64
|
7609d35287
|
Initial scaffold : Laravel 12 + PostgreSQL + auth + domaine métier (étapes 1-5)
- Laravel 12 sur PHP 8.5, Breeze (Blade/Tailwind/Alpine.js)
- Docker Compose dev (PostgreSQL 18 + Redis) et prod (stack complète + nginx)
- Migrations et models : lieux, sections, dépôts, source_types/fields, sources, relevés
- Colonne JSONB data sur releves avec colonnes générées indexées (nom, prenom, date_evenement)
- Index GIN pour la recherche fulltext
- Enums : UserRole, SourceStatus (avec transitions), CalendarType, FieldType
- RoleMiddleware (alias `role`) + helpers isAdmin/isSectionManager sur User
- CRUD Lieux (arbre hiérarchique, calcul nom_long en cascade)
- CRUD admin : Sections (+ gestion membres), Dépôts, Types de sources (+ champs dynamiques, drag & drop)
- CRUD Sources : visibilité filtrée par rôle, assignation membres, workflow de statut
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-04 16:16:37 +02:00 |
|