-- ============================================
-- Table de suivi des migrations de schema
-- Cette table stocke l'historique des migrations appliquees
-- ============================================

IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '_schema_migrations')
BEGIN
    CREATE TABLE _schema_migrations (
        id INT IDENTITY(1,1) PRIMARY KEY,
        version NVARCHAR(10) NOT NULL,           -- Ex: '001', '002', etc.
        nom NVARCHAR(255) NOT NULL,              -- Nom descriptif de la migration
        fichier NVARCHAR(255) NOT NULL,          -- Nom du fichier SQL
        date_application DATETIME2 NOT NULL DEFAULT GETDATE(),
        duree_ms INT NULL,                       -- Duree d'execution en ms
        succes BIT NOT NULL DEFAULT 1,
        message_erreur NVARCHAR(MAX) NULL,
        checksum NVARCHAR(64) NULL,              -- Hash du contenu pour detecter les modifications
        CONSTRAINT UQ_schema_migrations_version UNIQUE (version)
    );

    CREATE INDEX IX_schema_migrations_version ON _schema_migrations(version);

    PRINT 'Table _schema_migrations creee avec succes';
END
ELSE
BEGIN
    PRINT 'Table _schema_migrations existe deja';
END

