Ajout des commentaires dans le code
This commit is contained in:
@@ -4,8 +4,36 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
/**
|
||||
* Contrôle de conformité du schéma, joué à CHAQUE requête par app/bootstrap.php.
|
||||
*
|
||||
* Ce garde-fou existe parce que les migrations sont des fichiers SQL appliqués
|
||||
* par un service séparé : rien ne garantit que la base en face du code soit à
|
||||
* jour. Plutôt que de laisser l'application échouer plus tard sur une erreur SQL
|
||||
* cryptique au milieu d'un écran, on refuse de démarrer avec un message qui
|
||||
* nomme précisément ce qui manque et quel fichier jouer.
|
||||
*
|
||||
* CONSÉQUENCE POUR LE DÉVELOPPEUR : ajouter une table ou une colonne obligatoire
|
||||
* impose de compléter les listes ci-dessous EN MÊME TEMPS que la migration.
|
||||
* Oublier de le faire ne casse rien tout de suite — c'est justement le piège :
|
||||
* l'application démarrera sur une base incomplète.
|
||||
*
|
||||
* Le coût est de trois requêtes sur information_schema par requête HTTP,
|
||||
* accepté au regard du volume d'utilisateurs de l'application.
|
||||
*/
|
||||
final class SchemaModel extends BaseModel
|
||||
{
|
||||
/**
|
||||
* Vérifie tables, colonnes puis vues d'accès.
|
||||
*
|
||||
* Seules les colonnes AJOUTÉES PAR MIGRATION sont listées, pas l'intégralité
|
||||
* du schéma : ce sont les seules susceptibles de manquer sur une base créée
|
||||
* à partir de database/pta_prod_schema_mariadb.sql, qui ne contient que le
|
||||
* socle métier.
|
||||
*
|
||||
* @throws \RuntimeException Au premier manque constaté, avec le détail et
|
||||
* le fichier SQL à exécuter.
|
||||
*/
|
||||
public function assertCurrent(): void
|
||||
{
|
||||
$requiredTables = [
|
||||
|
||||
Reference in New Issue
Block a user