Fix `General error: 1 no such table: main.task_has_subtasks`

See: https://kanboard.discourse.group/t/error-no-such-table-main-task-has-subtasks/1664/15

> The `subtask_time_tracking table` has a wrong foreign key constraint. The constraints references the no-longer-existing table `task_has_subtasks`.
This commit is contained in:
emojized 2022-03-18 02:10:52 +01:00 committed by GitHub
parent c4f9c34f75
commit 178e2eaf63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 1 deletions

View File

@ -8,7 +8,31 @@ use Kanboard\Core\Security\Token;
use Kanboard\Core\Security\Role;
use PDO;
const VERSION = 125;
const VERSION = 126;
function version_126(PDO $pdo)
{
$pdo->exec('ALTER TABLE subtask_time_tracking RENAME TO subtask_time_tracking_old');
$pdo->exec('
CREATE TABLE subtask_time_tracking (
id INTEGER PRIMARY KEY,
user_id INTEGER NOT NULL,
subtask_id INTEGER NOT NULL,
start INTEGER DEFAULT 0,
end INTEGER DEFAULT 0,
time_spent REAL DEFAULT 0,
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY(subtask_id) REFERENCES subtasks(id) ON DELETE CASCADE
)
');
$pdo->exec('DROP INDEX subtasks_task_idx');
$pdo->exec('CREATE INDEX subtasks_task_idx ON subtasks(task_id)');
$pdo->exec('INSERT INTO subtask_time_tracking SELECT * FROM subtask_time_tracking_old');
$pdo->exec('DROP TABLE subtask_time_tracking_old');
}
function version_125(PDO $pdo)
{