first( "SELECT 1 AS tbl FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'customer_audit'" ); if ($tableExists) { return; } $database->execute( "CREATE TABLE customer_audit ( audit_id INT IDENTITY(1,1) NOT NULL, id INT NOT NULL, action CHAR(1) NOT NULL, fields NVARCHAR(MAX) NOT NULL, username NVARCHAR(255) NOT NULL DEFAULT 'system', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT PK_customer_audit PRIMARY KEY (audit_id), CONSTRAINT CHK_customer_audit_action CHECK (action IN ('I','U','D','R')) )" ); $database->execute('CREATE INDEX IX_customer_audit_id ON customer_audit (id)'); } public function down(Database $database): void { $database->execute('DROP TABLE IF EXISTS customer_audit'); } };