34 lines
2 KiB
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);
|
|
}
|
|
}
|