diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-09-07 22:40:38 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-09-07 22:40:38 -0400 |
commit | dded773749e869893a00865cf2183a7f0c684038 (patch) | |
tree | 1162daf867bfb23289e0d8488b60a861d6bf9786 /app/Schema | |
parent | 102de7e3860929e62578a6c96f810252dc572bdf (diff) |
Add new models ColumnMoveRestrictionModel and ProjectRoleModel
Diffstat (limited to 'app/Schema')
-rw-r--r-- | app/Schema/Mysql.php | 35 | ||||
-rw-r--r-- | app/Schema/Postgres.php | 33 | ||||
-rw-r--r-- | app/Schema/Sqlite.php | 30 |
3 files changed, 95 insertions, 3 deletions
diff --git a/app/Schema/Mysql.php b/app/Schema/Mysql.php index 99fed66f..11c7f232 100644 --- a/app/Schema/Mysql.php +++ b/app/Schema/Mysql.php @@ -6,7 +6,40 @@ use PDO; use Kanboard\Core\Security\Token; use Kanboard\Core\Security\Role; -const VERSION = 112; +const VERSION = 113; + +function version_113(PDO $pdo) +{ + $pdo->exec(" + CREATE TABLE project_has_roles ( + role_id INT NOT NULL AUTO_INCREMENT, + role VARCHAR(255) NOT NULL, + project_id INT NOT NULL, + UNIQUE(project_id, role), + FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE, + PRIMARY KEY(role_id) + ) ENGINE=InnoDB CHARSET=utf8 + "); + + $pdo->exec(" + CREATE TABLE column_has_move_restrictions ( + restriction_id INT NOT NULL AUTO_INCREMENT, + project_id INT NOT NULL, + role_id INT NOT NULL, + src_column_id INT NOT NULL, + dst_column_id INT NOT NULL, + UNIQUE(role_id, src_column_id, dst_column_id), + FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE, + FOREIGN KEY(role_id) REFERENCES project_has_roles(role_id) ON DELETE CASCADE, + FOREIGN KEY(src_column_id) REFERENCES columns(id) ON DELETE CASCADE, + FOREIGN KEY(dst_column_id) REFERENCES columns(id) ON DELETE CASCADE, + PRIMARY KEY(restriction_id) + ) ENGINE=InnoDB CHARSET=utf8 + "); + + $pdo->exec("ALTER TABLE `project_has_users` MODIFY `role` VARCHAR(255) NOT NULL"); + $pdo->exec("ALTER TABLE `project_has_groups` MODIFY `role` VARCHAR(255) NOT NULL"); +} function version_112(PDO $pdo) { diff --git a/app/Schema/Postgres.php b/app/Schema/Postgres.php index b982bcae..2d1695d0 100644 --- a/app/Schema/Postgres.php +++ b/app/Schema/Postgres.php @@ -6,7 +6,38 @@ use PDO; use Kanboard\Core\Security\Token; use Kanboard\Core\Security\Role; -const VERSION = 91; +const VERSION = 92; + +function version_92(PDO $pdo) +{ + $pdo->exec(" + CREATE TABLE project_has_roles ( + role_id SERIAL PRIMARY KEY, + role VARCHAR(255) NOT NULL, + project_id INTEGER NOT NULL, + UNIQUE(project_id, role), + FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE + ) + "); + + $pdo->exec(" + CREATE TABLE column_has_move_restrictions ( + restriction_id SERIAL PRIMARY KEY, + project_id INTEGER NOT NULL, + role_id INTEGER NOT NULL, + src_column_id INTEGER NOT NULL, + dst_column_id INTEGER NOT NULL, + UNIQUE(role_id, src_column_id, dst_column_id), + FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE, + FOREIGN KEY(role_id) REFERENCES project_has_roles(role_id) ON DELETE CASCADE, + FOREIGN KEY(src_column_id) REFERENCES columns(id) ON DELETE CASCADE, + FOREIGN KEY(dst_column_id) REFERENCES columns(id) ON DELETE CASCADE + ) + "); + + $pdo->exec('ALTER TABLE "project_has_users" ALTER COLUMN "role" TYPE VARCHAR(255)'); + $pdo->exec('ALTER TABLE "project_has_groups" ALTER COLUMN "role" TYPE VARCHAR(255)'); +} function version_91(PDO $pdo) { diff --git a/app/Schema/Sqlite.php b/app/Schema/Sqlite.php index 2a7735ee..ecfa93de 100644 --- a/app/Schema/Sqlite.php +++ b/app/Schema/Sqlite.php @@ -6,7 +6,35 @@ use Kanboard\Core\Security\Token; use Kanboard\Core\Security\Role; use PDO; -const VERSION = 103; +const VERSION = 104; + +function version_104(PDO $pdo) +{ + $pdo->exec(" + CREATE TABLE project_has_roles ( + role_id INTEGER PRIMARY KEY, + role TEXT NOT NULL, + project_id INTEGER NOT NULL, + UNIQUE(project_id, role), + FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE + ) + "); + + $pdo->exec(" + CREATE TABLE column_has_move_restrictions ( + restriction_id INTEGER PRIMARY KEY, + project_id INTEGER NOT NULL, + role_id INTEGER NOT NULL, + src_column_id INTEGER NOT NULL, + dst_column_id INTEGER NOT NULL, + UNIQUE(role_id, src_column_id, dst_column_id), + FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE, + FOREIGN KEY(role_id) REFERENCES project_has_roles(role_id) ON DELETE CASCADE, + FOREIGN KEY(src_column_id) REFERENCES columns(id) ON DELETE CASCADE, + FOREIGN KEY(dst_column_id) REFERENCES columns(id) ON DELETE CASCADE + ) + "); +} function version_103(PDO $pdo) { |