Remove default swimlane
This commit is contained in:
63
app/Schema/Migration.php
Normal file
63
app/Schema/Migration.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace Schema;
|
||||
|
||||
use PDO;
|
||||
|
||||
function migrate_default_swimlane(PDO $pdo)
|
||||
{
|
||||
$projects = get_all_projects($pdo);
|
||||
|
||||
foreach ($projects as $project) {
|
||||
|
||||
// Create new default swimlane
|
||||
$rq = $pdo->prepare('INSERT INTO swimlanes (project_id, name, is_active, position) VALUES (?, ?, ?, ?)');
|
||||
$rq->execute(array(
|
||||
$project['id'],
|
||||
$project['default_swimlane'],
|
||||
(int) $project['show_default_swimlane'],
|
||||
$project['show_default_swimlane'] == 1 ? 1 : 0,
|
||||
));
|
||||
|
||||
$swimlaneId = get_last_insert_id($pdo);
|
||||
|
||||
// Reorder swimlanes if the default one was active
|
||||
if ($project['show_default_swimlane']) {
|
||||
$rq = $pdo->prepare("UPDATE swimlanes SET position=position+1 WHERE project_id=? AND is_active='1' AND id!=?");
|
||||
$rq->execute(array(
|
||||
$project['id'],
|
||||
$swimlaneId,
|
||||
));
|
||||
}
|
||||
|
||||
// Move all tasks to new swimlane
|
||||
$rq = $pdo->prepare("UPDATE tasks SET swimlane_id=? WHERE swimlane_id='0' AND project_id=?");
|
||||
$rq->execute(array(
|
||||
$swimlaneId,
|
||||
$project['id'],
|
||||
));
|
||||
|
||||
// Migrate automatic actions
|
||||
$rq = $pdo->prepare("UPDATE action_has_params SET value=? WHERE id IN (SELECT action_has_params.id FROM action_has_params LEFT JOIN actions ON actions.id=action_has_params.action_id WHERE project_id=? AND name='swimlane_id' AND value='0')");
|
||||
$rq->execute(array($swimlaneId, $project['id']));
|
||||
}
|
||||
}
|
||||
|
||||
function get_all_projects(PDO $pdo)
|
||||
{
|
||||
$rq = $pdo->prepare('SELECT * FROM projects');
|
||||
$rq->execute();
|
||||
return $rq->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
function get_last_insert_id(PDO $pdo)
|
||||
{
|
||||
if (DB_DRIVER === 'postgres') {
|
||||
$rq = $pdo->prepare('SELECT LASTVAL()');
|
||||
$rq->execute();
|
||||
return $rq->fetchColumn();
|
||||
}
|
||||
|
||||
return $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
@@ -2,11 +2,23 @@
|
||||
|
||||
namespace Schema;
|
||||
|
||||
require_once __DIR__.'/Migration.php';
|
||||
|
||||
use PDO;
|
||||
use Kanboard\Core\Security\Token;
|
||||
use Kanboard\Core\Security\Role;
|
||||
|
||||
const VERSION = 121;
|
||||
const VERSION = 122;
|
||||
|
||||
function version_122(PDO $pdo)
|
||||
{
|
||||
migrate_default_swimlane($pdo);
|
||||
|
||||
$pdo->exec('ALTER TABLE `projects` DROP COLUMN `default_swimlane`');
|
||||
$pdo->exec('ALTER TABLE `projects` DROP COLUMN `show_default_swimlane`');
|
||||
$pdo->exec('ALTER TABLE `tasks` MODIFY `swimlane_id` INT(11) NOT NULL;');
|
||||
$pdo->exec('ALTER TABLE tasks ADD CONSTRAINT tasks_swimlane_ibfk_1 FOREIGN KEY (swimlane_id) REFERENCES swimlanes(id) ON DELETE CASCADE');
|
||||
}
|
||||
|
||||
function version_121(PDO $pdo)
|
||||
{
|
||||
|
||||
@@ -2,11 +2,24 @@
|
||||
|
||||
namespace Schema;
|
||||
|
||||
require_once __DIR__.'/Migration.php';
|
||||
|
||||
use PDO;
|
||||
use Kanboard\Core\Security\Token;
|
||||
use Kanboard\Core\Security\Role;
|
||||
|
||||
const VERSION = 100;
|
||||
const VERSION = 101;
|
||||
|
||||
function version_101(PDO $pdo)
|
||||
{
|
||||
migrate_default_swimlane($pdo);
|
||||
|
||||
$pdo->exec('ALTER TABLE "projects" DROP COLUMN "default_swimlane"');
|
||||
$pdo->exec('ALTER TABLE "projects" DROP COLUMN "show_default_swimlane"');
|
||||
$pdo->exec('ALTER TABLE "tasks" ALTER COLUMN "swimlane_id" SET NOT NULL');
|
||||
$pdo->exec('ALTER TABLE "tasks" ALTER COLUMN "swimlane_id" DROP DEFAULT');
|
||||
$pdo->exec('ALTER TABLE "tasks" ADD FOREIGN KEY (swimlane_id) REFERENCES swimlanes ON DELETE CASCADE');
|
||||
}
|
||||
|
||||
function version_100(PDO $pdo)
|
||||
{
|
||||
|
||||
@@ -2,11 +2,18 @@
|
||||
|
||||
namespace Schema;
|
||||
|
||||
require_once __DIR__.'/Migration.php';
|
||||
|
||||
use Kanboard\Core\Security\Token;
|
||||
use Kanboard\Core\Security\Role;
|
||||
use PDO;
|
||||
|
||||
const VERSION = 111;
|
||||
const VERSION = 112;
|
||||
|
||||
function version_112(PDO $pdo)
|
||||
{
|
||||
migrate_default_swimlane($pdo);
|
||||
}
|
||||
|
||||
function version_111(PDO $pdo)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user