Files
CMS/database/migrations/2024_01_01_000004_create_issues_table.php
2025-10-28 13:56:54 +01:00

31 lines
1.4 KiB
PHP

<?php
use PDO;
return function (PDO $pdo): void {
$pdo->exec(<<<SQL
CREATE TABLE issues (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
project_id INT UNSIGNED NOT NULL,
type ENUM('bug','feature','task') NOT NULL,
priority ENUM('low','medium','high','urgent') NOT NULL DEFAULT 'medium',
status ENUM('new','in_progress','in_review','resolved','closed') NOT NULL DEFAULT 'new',
assignee_id INT UNSIGNED NULL,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
environment VARCHAR(50) NULL,
version VARCHAR(100) NULL,
steps_to_reproduce TEXT NULL,
created_by INT UNSIGNED NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_issues_project FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
CONSTRAINT fk_issues_assignee FOREIGN KEY (assignee_id) REFERENCES users(id) ON DELETE SET NULL,
CONSTRAINT fk_issues_creator FOREIGN KEY (created_by) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_issues_project_status (project_id, status),
INDEX idx_issues_priority (priority),
INDEX idx_issues_assignee (assignee_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
SQL);
};