fix(commercial) : down() orphan-only + index FK referentiels (review ERP-53)
This commit is contained in:
@@ -84,10 +84,18 @@ final class Version20260601000000 extends AbstractMigration
|
|||||||
$this->addSql('DROP TABLE payment_delay');
|
$this->addSql('DROP TABLE payment_delay');
|
||||||
$this->addSql('DROP TABLE tva_mode');
|
$this->addSql('DROP TABLE tva_mode');
|
||||||
|
|
||||||
// Retire uniquement les 4 types seedes par cette migration. Les autres
|
// Retire uniquement les 4 types seedes par cette migration ET restes
|
||||||
// types eventuels (CRUD futur) sont preserves.
|
// orphelins (aucune `category` ne les reference). Sans la clause
|
||||||
|
// NOT EXISTS, le DELETE casse sur la FK RESTRICT category.category_type_id
|
||||||
|
// des qu'une categorie pointe sur l'un d'eux. Symetrique du
|
||||||
|
// `ON CONFLICT (code) DO NOTHING` du up() : on ne defait que ce qu'on a
|
||||||
|
// reellement cree et qui n'est pas reutilise.
|
||||||
$this->addSql(<<<'SQL'
|
$this->addSql(<<<'SQL'
|
||||||
DELETE FROM category_type WHERE code IN ('DISTRIBUTEUR', 'COURTIER', 'SECTEUR', 'AUTRE')
|
DELETE FROM category_type
|
||||||
|
WHERE code IN ('DISTRIBUTEUR', 'COURTIER', 'SECTEUR', 'AUTRE')
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT 1 FROM category c WHERE c.category_type_id = category_type.id
|
||||||
|
)
|
||||||
SQL);
|
SQL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,6 +228,14 @@ final class Version20260601000000 extends AbstractMigration
|
|||||||
$this->addSql('CREATE INDEX idx_client_created_by ON client (created_by)');
|
$this->addSql('CREATE INDEX idx_client_created_by ON client (created_by)');
|
||||||
$this->addSql('CREATE INDEX idx_client_updated_by ON client (updated_by)');
|
$this->addSql('CREATE INDEX idx_client_updated_by ON client (updated_by)');
|
||||||
|
|
||||||
|
// Index sur les FK des referentiels comptables — coherence avec les autres
|
||||||
|
// FK deja indexees ci-dessus (Postgres n'indexe pas automatiquement les
|
||||||
|
// colonnes portant une FOREIGN KEY).
|
||||||
|
$this->addSql('CREATE INDEX idx_client_tva_mode_id ON client (tva_mode_id)');
|
||||||
|
$this->addSql('CREATE INDEX idx_client_payment_delay_id ON client (payment_delay_id)');
|
||||||
|
$this->addSql('CREATE INDEX idx_client_payment_type_id ON client (payment_type_id)');
|
||||||
|
$this->addSql('CREATE INDEX idx_client_bank_id ON client (bank_id)');
|
||||||
|
|
||||||
// Unicite metier partielle (Q4) : nom de societe insensible a la casse,
|
// Unicite metier partielle (Q4) : nom de societe insensible a la casse,
|
||||||
// parmi les non-archives ET non soft-deletes uniquement. Pas d'index
|
// parmi les non-archives ET non soft-deletes uniquement. Pas d'index
|
||||||
// unique sur siren ni email.
|
// unique sur siren ni email.
|
||||||
|
|||||||
Reference in New Issue
Block a user