---
suivi: 1421
date: 2026-09-03
sujet: Fix migration Avis d’imposition — suppression clause AFTER
chantier: foncier
type: fix
statut: poussé
hash: 1421a0b1
fichiers:
  - database/migrations/2026_09_03_150000_create_avis_impositions_table.php
  - database/migrations/2026_09_03_150100_create_avis_imposition_historique_table.php
---

# SUIVI #1421 — Fix migration Avis d’imposition (clause AFTER en CREATE TABLE)

## PROMPT ENVOYÉ

Le #1420 a échoué en production : `CREATE TABLE` rejeté par MySQL (1064) à cause d’un `->after(...)` posé sur une colonne **dans une migration de création**. Objectif #1421 : retirer cette clause invalide (sans modifier le schéma métier) et fournir une vérification statique complète.

## SYNTHÈSE

1. **Correction migration**
   - Suppression du `->after('deleted_reason')` sur `verrouille` dans :
     `2026_09_03_150000_create_avis_impositions_table.php`.
   - La colonne `verrouille` conserve son ordre (déjà celui de la déclaration dans le `Schema::create`).

2. **Vérifications statiques**
   - Aucun `->after(` ne subsiste dans les deux migrations du #1420.
   - Une recherche projet (`rg`) montre d’autres `->after(`, mais elles sont toutes dans des `Schema::table` (ALTER), pas dans un `Schema::create` (CREATE).

## DÉPLOIEMENT-TEST

1. Déployer le commit #1421.
2. Sur prod : relancer `php artisan migrate --force` (ou vérifier que `migrate:status` ne remonte plus les Pending).

## LEÇON
- MySQL rejette `AFTER <col>` dans un `CREATE TABLE`. En migration, `->after(...)` est réservé à `ALTER TABLE` (`Schema::table`), jamais `Schema::create`.

