|
- <?php
-
- declare(strict_types=1);
-
- use Core\Database;
- use Core\Migration;
-
- return new class extends Migration
- {
- public function up(Database $database): void
- {
- $tableExists = $database->first(
- "SELECT 1 AS tbl FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'job_audit'"
- );
-
- if ($tableExists) {
- return;
- }
-
- $database->execute(
- "CREATE TABLE job_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_job_audit PRIMARY KEY (audit_id),
- CONSTRAINT CHK_job_audit_action CHECK (action IN ('I','U','D','R'))
- )"
- );
-
- $database->execute('CREATE INDEX IX_job_audit_id ON job_audit (id)');
- }
-
- public function down(Database $database): void
- {
- $database->execute('DROP TABLE IF EXISTS job_audit');
- }
- };
|