eeprom/database/2025_01_10_215112_create_tasks_table.php

34 lines
2 KiB
PHP

<?php
use Index\Db\DbConnection;
use Index\Db\Migration\DbMigration;
final class CreateTasksTable_20250110_215112 implements DbMigration {
public function migrate(DbConnection $conn): void {
$conn->execute(<<<SQL
CREATE TABLE prm_tasks (
task_id BIGINT(20) UNSIGNED NOT NULL,
task_secret CHAR(16) NOT NULL COLLATE 'ascii_bin',
user_id INT(10) UNSIGNED NOT NULL,
pool_id INT(10) UNSIGNED NOT NULL,
task_state ENUM('pending', 'complete', 'error') NOT NULL DEFAULT 'pending' COLLATE 'ascii_general_ci',
task_ip VARBINARY(16) NOT NULL,
task_name VARCHAR(255) NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
task_size INT(10) UNSIGNED NOT NULL,
task_type VARCHAR(255) NOT NULL COLLATE 'ascii_general_ci',
task_hash BINARY(32) NOT NULL,
task_error TEXT NOT NULL DEFAULT '' COLLATE 'utf8mb4_bin',
task_created TIMESTAMP NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (task_id) USING BTREE,
INDEX prm_tasks_users_index (user_id) USING BTREE,
INDEX prm_tasks_pools_foreign (pool_id) USING BTREE,
INDEX prm_tasks_created_index (task_created) USING BTREE,
INDEX prm_tasks_state_index (task_state) USING BTREE,
CONSTRAINT prm_tasks_pools_foreign
FOREIGN KEY (pool_id)
REFERENCES prm_pools (pool_id)
ON UPDATE CASCADE
ON DELETE CASCADE
) ENGINE=InnoDB COLLATE='utf8mb4_bin'
SQL);
}
}