看板初始化提交
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace Schema;
|
||||
|
||||
use PDO;
|
||||
|
||||
function migrate_default_swimlane(PDO $pdo)
|
||||
{
|
||||
$projects = get_all_projects($pdo);
|
||||
|
||||
foreach ($projects as $project) {
|
||||
if (empty($project['default_swimlane'])) {
|
||||
$project['default_swimlane'] = 'Default swimlane';
|
||||
}
|
||||
|
||||
$rq = $pdo->prepare('SELECT 1 FROM swimlanes WHERE name=? AND project_id=?');
|
||||
$rq->execute(array($project['default_swimlane'], $project['id']));
|
||||
|
||||
if ($rq->fetchColumn()) {
|
||||
$project['default_swimlane'] = $project['default_swimlane'].' (Default swimlane)';
|
||||
}
|
||||
|
||||
// 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("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($project['id']));
|
||||
$ids = $rq->fetchAll(PDO::FETCH_COLUMN, 0);
|
||||
|
||||
$rq = $pdo->prepare("UPDATE action_has_params SET value=? WHERE id=?");
|
||||
|
||||
foreach ($ids as $id) {
|
||||
$rq->execute(array($swimlaneId, $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();
|
||||
}
|
||||
@@ -0,0 +1,733 @@
|
||||
<?php
|
||||
|
||||
namespace Schema;
|
||||
|
||||
require_once __DIR__.'/Migration.php';
|
||||
|
||||
use PDO;
|
||||
use Kanboard\Core\Security\Token;
|
||||
use Kanboard\Core\Security\Role;
|
||||
|
||||
const VERSION = 3;
|
||||
|
||||
function version_3(PDO $pdo)
|
||||
{
|
||||
$pdo->exec("ALTER TABLE dbo.comments ADD visibility nvarchar(25) DEFAULT N'".Role::APP_USER."' NOT NULL");
|
||||
}
|
||||
|
||||
function version_2(PDO $pdo)
|
||||
{
|
||||
$pdo->exec("ALTER TABLE dbo.users ADD theme nvarchar(50) DEFAULT N'light' NOT NULL");
|
||||
}
|
||||
|
||||
function version_1(PDO $pdo)
|
||||
{
|
||||
// create tables
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.users (
|
||||
id int identity PRIMARY KEY
|
||||
, username nvarchar(255) NOT NULL
|
||||
, password nvarchar(255)
|
||||
, is_ldap_user bit DEFAULT 0
|
||||
, name nvarchar(255)
|
||||
, email nvarchar(255)
|
||||
, google_id nvarchar(255)
|
||||
, github_id nvarchar(30)
|
||||
, notifications_enabled bit DEFAULT 0
|
||||
, timezone nvarchar(50) DEFAULT N''
|
||||
, language nvarchar(11) DEFAULT N''
|
||||
, disable_login_form bit DEFAULT 0
|
||||
, twofactor_activated bit DEFAULT 0
|
||||
, twofactor_secret char(16)
|
||||
, token nvarchar(255) DEFAULT N''
|
||||
, notifications_filter int DEFAULT 4
|
||||
, nb_failed_login int DEFAULT 0
|
||||
, lock_expiration_date bigint DEFAULT 0
|
||||
, gitlab_id int
|
||||
, role nvarchar(25) NOT NULL
|
||||
, is_active bit DEFAULT 1
|
||||
, avatar_path nvarchar(255)
|
||||
, api_access_token nvarchar(255)
|
||||
, filter nvarchar(max) DEFAULT N''
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.projects (
|
||||
id int identity PRIMARY KEY
|
||||
, name nvarchar(max) NOT NULL
|
||||
, is_active bit DEFAULT 1
|
||||
, token nvarchar(255)
|
||||
, last_modified bigint DEFAULT 0
|
||||
, is_public bit DEFAULT 0
|
||||
, is_private bit DEFAULT 0
|
||||
, description nvarchar(max)
|
||||
, identifier nvarchar(50) DEFAULT N''
|
||||
, start_date nvarchar(10) DEFAULT ''
|
||||
, end_date nvarchar(10) DEFAULT ''
|
||||
, owner_id int DEFAULT 0
|
||||
, priority_default int DEFAULT 0
|
||||
, priority_start int DEFAULT 0
|
||||
, priority_end int DEFAULT 3
|
||||
, email nvarchar(max)
|
||||
, predefined_email_subjects nvarchar(max)
|
||||
, per_swimlane_task_limits bit DEFAULT 0 NOT NULL
|
||||
, task_limit int DEFAULT 0
|
||||
, enable_global_tags bit DEFAULT 1 NOT NULL
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.columns (
|
||||
id int identity PRIMARY KEY
|
||||
, title nvarchar(255) NOT NULL
|
||||
, position int
|
||||
, project_id int NOT NULL
|
||||
, task_limit int DEFAULT 0
|
||||
, description nvarchar(max)
|
||||
, hide_in_dashboard bit DEFAULT 0 NOT NULL
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, UNIQUE (title, project_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_users (
|
||||
project_id int NOT NULL
|
||||
, user_id int NOT NULL
|
||||
, role nvarchar(255) NOT NULL
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, UNIQUE(project_id, user_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.actions (
|
||||
id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, event_name nvarchar(max) NOT NULL
|
||||
, action_name nvarchar(max) NOT NULL
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.action_has_params (
|
||||
id int identity PRIMARY KEY
|
||||
, action_id int NOT NULL
|
||||
, name nvarchar(max) NOT NULL
|
||||
, value nvarchar(max) NOT NULL
|
||||
, FOREIGN KEY(action_id) REFERENCES dbo.actions(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.remember_me (
|
||||
id int identity PRIMARY KEY
|
||||
, user_id int NOT NULL
|
||||
, ip nvarchar(45)
|
||||
, user_agent nvarchar(255)
|
||||
, token nvarchar(255)
|
||||
, sequence nvarchar(255)
|
||||
, expiration int
|
||||
, date_creation bigint
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.last_logins (
|
||||
id int identity PRIMARY KEY
|
||||
, auth_type nvarchar(25)
|
||||
, user_id int NOT NULL
|
||||
, ip nvarchar(45)
|
||||
, user_agent nvarchar(255)
|
||||
, date_creation bigint
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_categories (
|
||||
id int identity PRIMARY KEY
|
||||
, name nvarchar(255) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, description nvarchar(max)
|
||||
, color_id nvarchar(50)
|
||||
, UNIQUE (project_id, name)
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.swimlanes (
|
||||
id int identity PRIMARY KEY
|
||||
, name nvarchar(848) NOT NULL /* max size for unique index */
|
||||
, position int DEFAULT 1
|
||||
, is_active bit DEFAULT 1
|
||||
, project_id int NOT NULL
|
||||
, description nvarchar(max)
|
||||
, task_limit int DEFAULT 0
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, UNIQUE (name, project_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.tasks
|
||||
(
|
||||
id int identity PRIMARY KEY
|
||||
, title nvarchar(max) NOT NULL
|
||||
, description nvarchar(max)
|
||||
, date_creation bigint
|
||||
, color_id nvarchar(255)
|
||||
, project_id int NOT NULL
|
||||
, column_id int NOT NULL
|
||||
, owner_id int DEFAULT 0
|
||||
, position int
|
||||
, is_active bit DEFAULT 1
|
||||
, date_completed bigint
|
||||
, score int
|
||||
, date_due bigint
|
||||
, category_id int DEFAULT 0
|
||||
, creator_id int DEFAULT 0
|
||||
, date_modification int DEFAULT 0
|
||||
, reference nvarchar(max) DEFAULT ''
|
||||
, date_started bigint
|
||||
, time_spent float DEFAULT 0
|
||||
, time_estimated float DEFAULT 0
|
||||
, swimlane_id int NOT NULL
|
||||
, date_moved bigint DEFAULT 0
|
||||
, recurrence_status int DEFAULT 0 NOT NULL
|
||||
, recurrence_trigger int DEFAULT 0 NOT NULL
|
||||
, recurrence_factor int DEFAULT 0 NOT NULL
|
||||
, recurrence_timeframe int DEFAULT 0 NOT NULL
|
||||
, recurrence_basedate int DEFAULT 0 NOT NULL
|
||||
, recurrence_parent int
|
||||
, recurrence_child int
|
||||
, priority int DEFAULT 0
|
||||
, external_provider nvarchar(255)
|
||||
, external_uri nvarchar(255)
|
||||
, FOREIGN KEY (project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, FOREIGN KEY (column_id) REFERENCES dbo.columns(id) ON DELETE NO ACTION /* columns_cascade_delete_trigger */
|
||||
, FOREIGN KEY (swimlane_id) REFERENCES dbo.swimlanes(id) ON DELETE NO ACTION /* swimlanes_cascade_delete_trigger */
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.task_has_files (
|
||||
id int identity PRIMARY KEY
|
||||
, name nvarchar(max) NOT NULL
|
||||
, path nvarchar(max)
|
||||
, is_image bit DEFAULT 0
|
||||
, task_id int NOT NULL
|
||||
, date bigint NOT NULL DEFAULT 0
|
||||
, user_id int NOT NULL DEFAULT 0
|
||||
, size int NOT NULL DEFAULT 0
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.subtasks (
|
||||
id int identity PRIMARY KEY
|
||||
, title nvarchar(max) NOT NULL
|
||||
, status smallint DEFAULT 0
|
||||
, time_estimated float DEFAULT 0
|
||||
, time_spent float DEFAULT 0
|
||||
, task_id int NOT NULL
|
||||
, user_id int
|
||||
, position int DEFAULT 1
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.user_has_notifications (
|
||||
user_id int NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
, UNIQUE(project_id, user_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.settings (
|
||||
[option] nvarchar(100) PRIMARY KEY
|
||||
, value nvarchar(max) DEFAULT ''
|
||||
, changed_by int DEFAULT 0 NOT NULL
|
||||
, changed_on int DEFAULT 0 NOT NULL
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_daily_column_stats (
|
||||
id int identity PRIMARY KEY
|
||||
, day nchar(10) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, column_id int NOT NULL
|
||||
, total int NOT NULL DEFAULT 0
|
||||
, score int NOT NULL DEFAULT 0
|
||||
, FOREIGN KEY(column_id) REFERENCES dbo.columns(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.subtask_time_tracking (
|
||||
id int identity PRIMARY KEY
|
||||
, user_id int NOT NULL
|
||||
, subtask_id int NOT NULL
|
||||
, [start] bigint DEFAULT 0
|
||||
, [end] bigint DEFAULT 0
|
||||
, time_spent real DEFAULT 0
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(subtask_id) REFERENCES dbo.subtasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.links (
|
||||
id int identity PRIMARY KEY
|
||||
, label nvarchar(255) NOT NULL
|
||||
, opposite_id int DEFAULT 0
|
||||
, UNIQUE(label)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.task_has_links (
|
||||
id int identity PRIMARY KEY
|
||||
, link_id int NOT NULL
|
||||
, task_id int NOT NULL
|
||||
, opposite_task_id int NOT NULL
|
||||
, FOREIGN KEY(link_id) REFERENCES dbo.links(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(opposite_task_id) REFERENCES dbo.tasks(id) ON DELETE NO ACTION /* Handled in tasks_cascade_delete_trigger */
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.transitions (
|
||||
id int identity PRIMARY KEY
|
||||
, user_id int NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, task_id int NOT NULL
|
||||
, src_column_id int NOT NULL
|
||||
, dst_column_id int NOT NULL
|
||||
, date bigint NOT NULL
|
||||
, time_spent int DEFAULT 0
|
||||
, FOREIGN KEY(src_column_id) REFERENCES dbo.columns(id) ON DELETE NO ACTION /* columns_cascade_delete_trigger */
|
||||
, FOREIGN KEY(dst_column_id) REFERENCES dbo.columns(id) ON DELETE NO ACTION /* columns_cascade_delete_trigger */
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.currencies (
|
||||
currency nvarchar(3) NOT NULL UNIQUE
|
||||
, rate REAL DEFAULT 0
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.comments (
|
||||
id int identity PRIMARY KEY
|
||||
, task_id int NOT NULL
|
||||
, user_id int DEFAULT 0
|
||||
, date_creation bigint NOT NULL
|
||||
, comment nvarchar(max) NOT NULL
|
||||
, reference nvarchar(max) DEFAULT N''
|
||||
, date_modification bigint
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_daily_stats (
|
||||
id int identity PRIMARY KEY
|
||||
, day nchar(10) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, avg_lead_time int NOT NULL DEFAULT 0
|
||||
, avg_cycle_time int NOT NULL DEFAULT 0
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.plugin_schema_versions (
|
||||
plugin nvarchar(80) NOT NULL PRIMARY KEY
|
||||
, version int NOT NULL DEFAULT 0
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.custom_filters (
|
||||
id int identity PRIMARY KEY
|
||||
, filter nvarchar(max) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, user_id int NOT NULL
|
||||
, name nvarchar(max) NOT NULL
|
||||
, is_shared bit DEFAULT 0
|
||||
, append bit DEFAULT 0
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.user_has_unread_notifications (
|
||||
id int identity PRIMARY KEY
|
||||
, user_id int NOT NULL
|
||||
, date_creation bigint NOT NULL
|
||||
, event_name nvarchar(max) NOT NULL
|
||||
, event_data nvarchar(max) NOT NULL
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.user_has_notification_types (
|
||||
id int identity PRIMARY KEY
|
||||
, user_id int NOT NULL
|
||||
, notification_type nvarchar(50)
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_notification_types (
|
||||
id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, notification_type nvarchar(50) NOT NULL
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
, UNIQUE(project_id, notification_type)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.user_has_metadata (
|
||||
user_id int NOT NULL
|
||||
, name nvarchar(50) NOT NULL
|
||||
, value nvarchar(255) DEFAULT ''
|
||||
, changed_by int DEFAULT 0 NOT NULL
|
||||
, changed_on int DEFAULT 0 NOT NULL /* TODO: should be bigint?? */
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, UNIQUE(user_id, name)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_metadata (
|
||||
project_id int NOT NULL
|
||||
, name nvarchar(50) NOT NULL
|
||||
, value nvarchar(255) DEFAULT ''
|
||||
, changed_by int DEFAULT 0 NOT NULL
|
||||
, changed_on int DEFAULT 0 NOT NULL /* TODO: should be bigint?? */
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
, UNIQUE(project_id, name)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.task_has_metadata (
|
||||
task_id int NOT NULL
|
||||
, name nvarchar(50) NOT NULL
|
||||
, value nvarchar(255) DEFAULT ''
|
||||
, changed_by int DEFAULT 0 NOT NULL
|
||||
, changed_on int DEFAULT 0 NOT NULL /* TODO: should be bigint?? */
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
, UNIQUE(task_id, name)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.groups (
|
||||
id int identity PRIMARY KEY
|
||||
, external_id nvarchar(255) DEFAULT ''
|
||||
, name nvarchar(850) NOT NULL UNIQUE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.group_has_users (
|
||||
group_id int NOT NULL
|
||||
, user_id int NOT NULL
|
||||
, FOREIGN KEY(group_id) REFERENCES dbo.groups(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, UNIQUE(group_id, user_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_groups (
|
||||
group_id int NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, role nvarchar(255) NOT NULL
|
||||
, FOREIGN KEY(group_id) REFERENCES dbo.groups(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
, UNIQUE(group_id, project_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.password_reset (
|
||||
token nvarchar(80) PRIMARY KEY
|
||||
, user_id int NOT NULL
|
||||
, date_expiration int NOT NULL /* TODO: bigint?? */
|
||||
, date_creation int NOT NULL /* TODO: bigint?? */
|
||||
, ip nvarchar(45) NOT NULL
|
||||
, user_agent nvarchar(255) NOT NULL
|
||||
, is_active bit NOT NULL
|
||||
, FOREIGN KEY(user_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.task_has_external_links (
|
||||
id int identity PRIMARY KEY
|
||||
, link_type nvarchar(100) NOT NULL
|
||||
, dependency nvarchar(100) NOT NULL
|
||||
, title nvarchar(max) NOT NULL
|
||||
, url nvarchar(max) NOT NULL
|
||||
, date_creation int NOT NULL /* TODO: bigint?? */
|
||||
, date_modification int NOT NULL /* TODO: bigint?? */
|
||||
, task_id int NOT NULL
|
||||
, creator_id int DEFAULT 0
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_files (
|
||||
id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, name nvarchar(max) NOT NULL
|
||||
, path nvarchar(max) NOT NULL
|
||||
, is_image bit DEFAULT 0
|
||||
, size int DEFAULT 0 NOT NULL
|
||||
, user_id int DEFAULT 0 NOT NULL
|
||||
, date int DEFAULT 0 NOT NULL /* TODO: bigint?? */
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.tags (
|
||||
id int identity PRIMARY KEY
|
||||
, name nvarchar(255) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, color_id nvarchar(50) DEFAULT NULL
|
||||
, UNIQUE(project_id, name)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.task_has_tags (
|
||||
task_id int NOT NULL
|
||||
, tag_id int NOT NULL
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(tag_id) REFERENCES dbo.tags(id) ON DELETE CASCADE
|
||||
, UNIQUE(tag_id, task_id)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_has_roles (
|
||||
role_id int identity PRIMARY KEY
|
||||
, role nvarchar(255) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, UNIQUE(project_id, role)
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.column_has_move_restrictions (
|
||||
restriction_id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, role_id int NOT NULL
|
||||
, src_column_id int NOT NULL
|
||||
, dst_column_id int NOT NULL
|
||||
, only_assigned bit DEFAULT 0
|
||||
, UNIQUE(role_id, src_column_id, dst_column_id)
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, FOREIGN KEY(role_id) REFERENCES dbo.project_has_roles(role_id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(src_column_id) REFERENCES dbo.columns(id) ON DELETE NO ACTION /* columns_cascade_delete_trigger */
|
||||
, FOREIGN KEY(dst_column_id) REFERENCES dbo.columns(id) ON DELETE NO ACTION /* columns_cascade_delete_trigger */
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_role_has_restrictions (
|
||||
restriction_id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, role_id int NOT NULL
|
||||
, [rule] nvarchar(255) NOT NULL
|
||||
, UNIQUE(role_id, [rule])
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, FOREIGN KEY(role_id) REFERENCES dbo.project_has_roles(role_id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.column_has_restrictions (
|
||||
restriction_id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, role_id int NOT NULL
|
||||
, column_id int NOT NULL
|
||||
, [rule] nvarchar(255) NOT NULL
|
||||
, UNIQUE(role_id, column_id, [rule])
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, FOREIGN KEY(role_id) REFERENCES dbo.project_has_roles(role_id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(column_id) REFERENCES dbo.columns(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.invites (
|
||||
email nvarchar(255) NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, token nvarchar(255) NOT NULL
|
||||
, PRIMARY KEY(email, token)
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.project_activities (
|
||||
id int identity PRIMARY KEY
|
||||
, date_creation bigint NOT NULL
|
||||
, event_name nvarchar(max) NOT NULL
|
||||
, creator_id int NOT NULL
|
||||
, project_id int NOT NULL
|
||||
, task_id int NOT NULL
|
||||
, data nvarchar(max)
|
||||
, FOREIGN KEY(creator_id) REFERENCES dbo.users(id) ON DELETE CASCADE
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE NO ACTION /* projects_cascade_delete_trigger */
|
||||
, FOREIGN KEY(task_id) REFERENCES dbo.tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.predefined_task_descriptions (
|
||||
id int identity PRIMARY KEY
|
||||
, project_id int NOT NULL
|
||||
, title nvarchar(max) NOT NULL
|
||||
, description nvarchar(max) NOT NULL
|
||||
, FOREIGN KEY(project_id) REFERENCES dbo.projects(id) ON DELETE CASCADE
|
||||
);
|
||||
");
|
||||
$pdo->exec("
|
||||
CREATE TABLE dbo.sessions (
|
||||
id nvarchar(450) PRIMARY KEY /* max length for primary key */
|
||||
, expire_at int NOT NULL
|
||||
, data nvarchar(max) DEFAULT ''
|
||||
);
|
||||
");
|
||||
|
||||
// create triggers -- each of which must be in its own batch
|
||||
$pdo->exec("
|
||||
CREATE TRIGGER dbo.columns_cascade_delete_trigger
|
||||
ON dbo.columns INSTEAD OF DELETE
|
||||
AS
|
||||
SET NOCOUNT ON;
|
||||
DELETE dbo.column_has_move_restrictions
|
||||
WHERE src_column_id IN (SELECT id FROM deleted)
|
||||
OR dst_column_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.transitions
|
||||
WHERE src_column_id IN (SELECT id FROM deleted)
|
||||
OR dst_column_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.tasks
|
||||
WHERE column_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.columns
|
||||
WHERE id IN (SELECT id FROM deleted);
|
||||
");
|
||||
|
||||
$pdo->exec("
|
||||
CREATE TRIGGER projects_cascade_delete_trigger
|
||||
ON dbo.projects INSTEAD OF DELETE
|
||||
AS
|
||||
SET NOCOUNT ON;
|
||||
DELETE dbo.column_has_move_restrictions
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.column_has_restrictions
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.columns
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.project_activities
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.project_daily_column_stats
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.project_role_has_restrictions
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.swimlanes
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.tasks
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.transitions
|
||||
WHERE project_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.projects
|
||||
WHERE id IN (SELECT id FROM deleted);
|
||||
");
|
||||
|
||||
$pdo->exec("
|
||||
CREATE TRIGGER dbo.swimlanes_cascade_delete_trigger
|
||||
ON dbo.swimlanes INSTEAD OF DELETE
|
||||
AS
|
||||
SET NOCOUNT ON;
|
||||
DELETE dbo.tasks
|
||||
WHERE swimlane_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.swimlanes
|
||||
WHERE id IN (SELECT id FROM deleted);
|
||||
");
|
||||
|
||||
$pdo->exec("
|
||||
CREATE TRIGGER dbo.tasks_cascade_delete_trigger
|
||||
ON dbo.tasks INSTEAD OF DELETE
|
||||
AS
|
||||
SET NOCOUNT ON;
|
||||
DELETE dbo.task_has_links
|
||||
WHERE opposite_task_id IN (SELECT id FROM deleted);
|
||||
DELETE dbo.tasks
|
||||
WHERE id IN (SELECT id FROM deleted);
|
||||
");
|
||||
|
||||
// set defaults
|
||||
$pdo->exec("
|
||||
ALTER TABLE dbo.project_has_users
|
||||
ADD DEFAULT N'" .Role::PROJECT_VIEWER. "' FOR role;
|
||||
");
|
||||
$pdo->exec("
|
||||
ALTER TABLE dbo.users
|
||||
ADD DEFAULT N'" .Role::APP_USER. "' FOR role;
|
||||
");
|
||||
|
||||
// insert starting data
|
||||
$aui = $pdo->prepare("INSERT INTO dbo.users (username, password, role) VALUES (?, ?, ?);");
|
||||
$aui->execute(array('admin', \password_hash('admin', PASSWORD_BCRYPT), Role::APP_ADMIN));
|
||||
|
||||
$rq = $pdo->prepare('INSERT INTO dbo.settings ([option],value) VALUES (?, ?);');
|
||||
$rq->execute(array('api_token', Token::getToken()));
|
||||
$rq->execute(array('application_url', defined('KANBOARD_URL') ? KANBOARD_URL : ''));
|
||||
$rq->execute(array('board_highlight_period', defined('RECENT_TASK_PERIOD') ? RECENT_TASK_PERIOD : 48*60*60));
|
||||
$rq->execute(array('board_private_refresh_interval', defined('BOARD_CHECK_INTERVAL') ? BOARD_CHECK_INTERVAL : 10));
|
||||
$rq->execute(array('board_public_refresh_interval', defined('BOARD_PUBLIC_CHECK_INTERVAL') ? BOARD_PUBLIC_CHECK_INTERVAL : 60));
|
||||
$rq->execute(array('webhook_token', Token::getToken()));
|
||||
|
||||
$pdo->exec("
|
||||
INSERT INTO dbo.settings ([option], value) VALUES
|
||||
('application_currency','USD'),
|
||||
('application_date_format','m/d/Y'),
|
||||
('application_language','en_US'),
|
||||
('application_stylesheet',''),
|
||||
('application_time_format','H:i'),
|
||||
('application_timezone','UTC'),
|
||||
('board_columns',''),
|
||||
('calendar_project_tasks','date_started'),
|
||||
('calendar_user_subtasks_time_tracking','0'),
|
||||
('calendar_user_tasks','date_started'),
|
||||
('cfd_include_closed_tasks','1'),
|
||||
('default_color','yellow'),
|
||||
('integration_gravatar','0'),
|
||||
('password_reset','1'),
|
||||
('project_categories',''),
|
||||
('subtask_restriction','0'),
|
||||
('subtask_time_tracking','1'),
|
||||
('webhook_url','')
|
||||
;
|
||||
");
|
||||
|
||||
$pdo->exec("
|
||||
SET IDENTITY_INSERT dbo.links ON;
|
||||
INSERT INTO dbo.links (id, label, opposite_id) VALUES
|
||||
(1,'relates to',0),
|
||||
(2,'blocks',3),
|
||||
(3,'is blocked by',2),
|
||||
(4,'duplicates',5),
|
||||
(5,'is duplicated by',4),
|
||||
(6,'is a child of',7),
|
||||
(7,'is a parent of',6),
|
||||
(8,'targets milestone',9),
|
||||
(9,'is a milestone of',8),
|
||||
(10,'fixes',11),
|
||||
(11,'is fixed by',10)
|
||||
;
|
||||
SET IDENTITY_INSERT dbo.links OFF;
|
||||
");
|
||||
|
||||
// create indexes
|
||||
$pdo->exec("
|
||||
CREATE UNIQUE INDEX users_username_idx ON dbo.users(username);
|
||||
CREATE UNIQUE INDEX project_daily_column_stats_idx ON dbo.project_daily_column_stats(day, project_id, column_id);
|
||||
CREATE UNIQUE INDEX task_has_links_unique ON dbo.task_has_links(link_id, task_id, opposite_task_id);
|
||||
CREATE UNIQUE INDEX project_daily_stats_idx ON dbo.project_daily_stats(day, project_id);
|
||||
CREATE UNIQUE INDEX user_has_notification_types_user_idx ON dbo.user_has_notification_types(user_id, notification_type);
|
||||
|
||||
CREATE INDEX columns_project_idx ON dbo.columns(project_id);
|
||||
CREATE INDEX swimlanes_project_idx ON dbo.swimlanes(project_id);
|
||||
CREATE INDEX categories_project_idx ON dbo.project_has_categories(project_id);
|
||||
CREATE INDEX subtasks_task_idx ON dbo.subtasks(task_id);
|
||||
CREATE INDEX files_task_idx ON dbo.task_has_files(task_id);
|
||||
CREATE INDEX task_has_links_task_index ON dbo.task_has_links(task_id);
|
||||
CREATE INDEX transitions_task_index ON dbo.transitions(task_id);
|
||||
CREATE INDEX transitions_project_index ON dbo.transitions(project_id);
|
||||
CREATE INDEX transitions_user_index ON dbo.transitions(user_id);
|
||||
");
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,811 @@
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
SET NAMES utf8mb4 ;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
DROP TABLE IF EXISTS `action_has_params`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `action_has_params` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`action_id` int(11) NOT NULL,
|
||||
`name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`value` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `action_id` (`action_id`),
|
||||
CONSTRAINT `action_has_params_ibfk_1` FOREIGN KEY (`action_id`) REFERENCES `actions` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `actions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `actions` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`event_name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`action_name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `actions_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `column_has_move_restrictions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `column_has_move_restrictions` (
|
||||
`restriction_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`role_id` int(11) NOT NULL,
|
||||
`src_column_id` int(11) NOT NULL,
|
||||
`dst_column_id` int(11) NOT NULL,
|
||||
`only_assigned` tinyint(1) DEFAULT '0',
|
||||
PRIMARY KEY (`restriction_id`),
|
||||
UNIQUE KEY `role_id` (`role_id`,`src_column_id`,`dst_column_id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
KEY `src_column_id` (`src_column_id`),
|
||||
KEY `dst_column_id` (`dst_column_id`),
|
||||
CONSTRAINT `column_has_move_restrictions_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `column_has_move_restrictions_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `project_has_roles` (`role_id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `column_has_move_restrictions_ibfk_3` FOREIGN KEY (`src_column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `column_has_move_restrictions_ibfk_4` FOREIGN KEY (`dst_column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `column_has_restrictions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `column_has_restrictions` (
|
||||
`restriction_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`role_id` int(11) NOT NULL,
|
||||
`column_id` int(11) NOT NULL,
|
||||
`rule` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`restriction_id`),
|
||||
UNIQUE KEY `role_id` (`role_id`,`column_id`,`rule`),
|
||||
KEY `project_id` (`project_id`),
|
||||
KEY `column_id` (`column_id`),
|
||||
CONSTRAINT `column_has_restrictions_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `column_has_restrictions_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `project_has_roles` (`role_id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `column_has_restrictions_ibfk_3` FOREIGN KEY (`column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `columns`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `columns` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`title` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`position` int(11) NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`task_limit` int(11) DEFAULT '0',
|
||||
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`hide_in_dashboard` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_title_project` (`title`,`project_id`),
|
||||
KEY `columns_project_idx` (`project_id`),
|
||||
CONSTRAINT `columns_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `comments`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `comments` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`task_id` int(11) NOT NULL,
|
||||
`user_id` int(11) DEFAULT '0',
|
||||
`date_creation` bigint(20) DEFAULT NULL,
|
||||
`comment` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`reference` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`date_modification` bigint(20) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
KEY `comments_reference_idx` (`reference`),
|
||||
KEY `comments_task_idx` (`task_id`),
|
||||
CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `currencies`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `currencies` (
|
||||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`rate` float DEFAULT '0',
|
||||
UNIQUE KEY `currency` (`currency`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `custom_filters`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `custom_filters` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`filter` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`is_shared` tinyint(1) DEFAULT '0',
|
||||
`append` tinyint(1) DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `custom_filters_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `custom_filters_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `group_has_users`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `group_has_users` (
|
||||
`group_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
UNIQUE KEY `group_id` (`group_id`,`user_id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `group_has_users_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `group_has_users_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `groups`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `groups` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`external_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `invites`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `invites` (
|
||||
`email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`token` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`email`,`token`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `last_logins`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `last_logins` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`auth_type` varchar(25) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`user_id` int(11) DEFAULT NULL,
|
||||
`ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`date_creation` bigint(20) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `last_logins_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `links`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `links` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`label` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`opposite_id` int(11) DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `label` (`label`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `password_reset`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `password_reset` (
|
||||
`token` varchar(80) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`date_expiration` int(11) NOT NULL,
|
||||
`date_creation` int(11) NOT NULL,
|
||||
`ip` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`user_agent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`is_active` tinyint(1) NOT NULL,
|
||||
PRIMARY KEY (`token`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `password_reset_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `plugin_schema_versions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `plugin_schema_versions` (
|
||||
`plugin` varchar(80) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`version` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`plugin`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `predefined_task_descriptions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `predefined_task_descriptions` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`description` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `predefined_task_descriptions_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_activities`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_activities` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`date_creation` bigint(20) DEFAULT NULL,
|
||||
`event_name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`creator_id` int(11) DEFAULT NULL,
|
||||
`project_id` int(11) DEFAULT NULL,
|
||||
`task_id` int(11) DEFAULT NULL,
|
||||
`data` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `creator_id` (`creator_id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
KEY `task_id` (`task_id`),
|
||||
CONSTRAINT `project_activities_ibfk_1` FOREIGN KEY (`creator_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `project_activities_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `project_activities_ibfk_3` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_daily_column_stats`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_daily_column_stats` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`day` char(10) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`column_id` int(11) NOT NULL,
|
||||
`total` int(11) NOT NULL DEFAULT '0',
|
||||
`score` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `project_daily_column_stats_idx` (`day`,`project_id`,`column_id`),
|
||||
KEY `column_id` (`column_id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `project_daily_column_stats_ibfk_1` FOREIGN KEY (`column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `project_daily_column_stats_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_daily_stats`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_daily_stats` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`day` char(10) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`avg_lead_time` int(11) NOT NULL DEFAULT '0',
|
||||
`avg_cycle_time` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `project_daily_stats_idx` (`day`,`project_id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `project_daily_stats_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_categories`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_categories` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`color_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_project_category` (`project_id`,`name`),
|
||||
KEY `categories_project_idx` (`project_id`),
|
||||
CONSTRAINT `project_has_categories_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_files`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_files` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`path` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`is_image` tinyint(1) DEFAULT '0',
|
||||
`size` int(11) NOT NULL DEFAULT '0',
|
||||
`user_id` int(11) NOT NULL DEFAULT '0',
|
||||
`date` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `project_has_files_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_groups`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_groups` (
|
||||
`group_id` int(11) NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`role` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
UNIQUE KEY `group_id` (`group_id`,`project_id`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `project_has_groups_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `project_has_groups_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_metadata`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_metadata` (
|
||||
`project_id` int(11) NOT NULL,
|
||||
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`changed_by` int(11) NOT NULL DEFAULT '0',
|
||||
`changed_on` int(11) NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `project_id` (`project_id`,`name`),
|
||||
CONSTRAINT `project_has_metadata_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_notification_types`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_notification_types` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`notification_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `project_id` (`project_id`,`notification_type`),
|
||||
CONSTRAINT `project_has_notification_types_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_roles`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_roles` (
|
||||
`role_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`role` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`role_id`),
|
||||
UNIQUE KEY `project_id` (`project_id`,`role`),
|
||||
CONSTRAINT `project_has_roles_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_has_users`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_has_users` (
|
||||
`project_id` int(11) NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`role` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
UNIQUE KEY `idx_project_user` (`project_id`,`user_id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `project_has_users_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `project_has_users_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `project_role_has_restrictions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `project_role_has_restrictions` (
|
||||
`restriction_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`role_id` int(11) NOT NULL,
|
||||
`rule` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`restriction_id`),
|
||||
UNIQUE KEY `role_id` (`role_id`,`rule`),
|
||||
KEY `project_id` (`project_id`),
|
||||
CONSTRAINT `project_role_has_restrictions_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `project_role_has_restrictions_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `project_has_roles` (`role_id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `projects`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `projects` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`is_active` tinyint(4) DEFAULT '1',
|
||||
`token` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`last_modified` bigint(20) DEFAULT NULL,
|
||||
`is_public` tinyint(1) DEFAULT '0',
|
||||
`is_private` tinyint(1) DEFAULT '0',
|
||||
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`identifier` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`start_date` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`end_date` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`owner_id` int(11) DEFAULT '0',
|
||||
`priority_default` int(11) DEFAULT '0',
|
||||
`priority_start` int(11) DEFAULT '0',
|
||||
`priority_end` int(11) DEFAULT '3',
|
||||
`email` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`predefined_email_subjects` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `remember_me`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `remember_me` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) DEFAULT NULL,
|
||||
`ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`token` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`sequence` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`expiration` int(11) DEFAULT NULL,
|
||||
`date_creation` bigint(20) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `remember_me_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `schema_version`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `schema_version` (
|
||||
`version` int(11) DEFAULT '0'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `sessions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `sessions` (
|
||||
`id` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`expire_at` int(11) NOT NULL,
|
||||
`data` longtext COLLATE utf8mb4_unicode_ci,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `settings`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `settings` (
|
||||
`option` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`value` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`changed_by` int(11) NOT NULL DEFAULT '0',
|
||||
`changed_on` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`option`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `subtask_time_tracking`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `subtask_time_tracking` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`subtask_id` int(11) NOT NULL,
|
||||
`start` bigint(20) DEFAULT NULL,
|
||||
`end` bigint(20) DEFAULT NULL,
|
||||
`time_spent` float DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
KEY `subtask_id` (`subtask_id`),
|
||||
CONSTRAINT `subtask_time_tracking_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `subtask_time_tracking_ibfk_2` FOREIGN KEY (`subtask_id`) REFERENCES `subtasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `subtasks`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `subtasks` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`status` int(11) DEFAULT '0',
|
||||
`time_estimated` float DEFAULT NULL,
|
||||
`time_spent` float DEFAULT NULL,
|
||||
`task_id` int(11) NOT NULL,
|
||||
`user_id` int(11) DEFAULT NULL,
|
||||
`position` int(11) DEFAULT '1',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `subtasks_task_idx` (`task_id`),
|
||||
CONSTRAINT `subtasks_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `swimlanes`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `swimlanes` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`position` int(11) DEFAULT '1',
|
||||
`is_active` int(11) DEFAULT '1',
|
||||
`project_id` int(11) DEFAULT NULL,
|
||||
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`,`project_id`),
|
||||
KEY `swimlanes_project_idx` (`project_id`),
|
||||
CONSTRAINT `swimlanes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `tags`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `tags` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`color_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `project_id` (`project_id`,`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `task_has_external_links`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `task_has_external_links` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`link_type` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`dependency` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`url` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`date_creation` int(11) NOT NULL,
|
||||
`date_modification` int(11) NOT NULL,
|
||||
`task_id` int(11) NOT NULL,
|
||||
`creator_id` int(11) DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `task_id` (`task_id`),
|
||||
CONSTRAINT `task_has_external_links_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `task_has_files`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `task_has_files` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`path` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`is_image` tinyint(1) DEFAULT '0',
|
||||
`task_id` int(11) NOT NULL,
|
||||
`date` bigint(20) DEFAULT NULL,
|
||||
`user_id` int(11) NOT NULL DEFAULT '0',
|
||||
`size` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `files_task_idx` (`task_id`),
|
||||
CONSTRAINT `task_has_files_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `task_has_links`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `task_has_links` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`link_id` int(11) NOT NULL,
|
||||
`task_id` int(11) NOT NULL,
|
||||
`opposite_task_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `task_has_links_unique` (`link_id`,`task_id`,`opposite_task_id`),
|
||||
KEY `opposite_task_id` (`opposite_task_id`),
|
||||
KEY `task_has_links_task_index` (`task_id`),
|
||||
CONSTRAINT `task_has_links_ibfk_1` FOREIGN KEY (`link_id`) REFERENCES `links` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `task_has_links_ibfk_2` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `task_has_links_ibfk_3` FOREIGN KEY (`opposite_task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `task_has_metadata`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `task_has_metadata` (
|
||||
`task_id` int(11) NOT NULL,
|
||||
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`changed_by` int(11) NOT NULL DEFAULT '0',
|
||||
`changed_on` int(11) NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `task_id` (`task_id`,`name`),
|
||||
CONSTRAINT `task_has_metadata_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `task_has_tags`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `task_has_tags` (
|
||||
`task_id` int(11) NOT NULL,
|
||||
`tag_id` int(11) NOT NULL,
|
||||
UNIQUE KEY `tag_id` (`tag_id`,`task_id`),
|
||||
KEY `task_id` (`task_id`),
|
||||
CONSTRAINT `task_has_tags_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `task_has_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `tasks`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `tasks` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
`date_creation` bigint(20) DEFAULT NULL,
|
||||
`date_completed` bigint(20) DEFAULT NULL,
|
||||
`date_due` bigint(20) DEFAULT NULL,
|
||||
`color_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`column_id` int(11) NOT NULL,
|
||||
`owner_id` int(11) DEFAULT '0',
|
||||
`position` int(11) DEFAULT NULL,
|
||||
`score` int(11) DEFAULT NULL,
|
||||
`is_active` tinyint(4) DEFAULT '1',
|
||||
`category_id` int(11) DEFAULT '0',
|
||||
`creator_id` int(11) DEFAULT '0',
|
||||
`date_modification` int(11) DEFAULT '0',
|
||||
`reference` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`date_started` bigint(20) DEFAULT NULL,
|
||||
`time_spent` float DEFAULT '0',
|
||||
`time_estimated` float DEFAULT '0',
|
||||
`swimlane_id` int(11) NOT NULL,
|
||||
`date_moved` bigint(20) DEFAULT NULL,
|
||||
`recurrence_status` int(11) NOT NULL DEFAULT '0',
|
||||
`recurrence_trigger` int(11) NOT NULL DEFAULT '0',
|
||||
`recurrence_factor` int(11) NOT NULL DEFAULT '0',
|
||||
`recurrence_timeframe` int(11) NOT NULL DEFAULT '0',
|
||||
`recurrence_basedate` int(11) NOT NULL DEFAULT '0',
|
||||
`recurrence_parent` int(11) DEFAULT NULL,
|
||||
`recurrence_child` int(11) DEFAULT NULL,
|
||||
`priority` int(11) DEFAULT '0',
|
||||
`external_provider` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`external_uri` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_task_active` (`is_active`),
|
||||
KEY `column_id` (`column_id`),
|
||||
KEY `tasks_reference_idx` (`reference`),
|
||||
KEY `tasks_project_idx` (`project_id`),
|
||||
KEY `tasks_swimlane_ibfk_1` (`swimlane_id`),
|
||||
CONSTRAINT `tasks_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `tasks_ibfk_2` FOREIGN KEY (`column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `tasks_swimlane_ibfk_1` FOREIGN KEY (`swimlane_id`) REFERENCES `swimlanes` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `transitions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `transitions` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
`task_id` int(11) NOT NULL,
|
||||
`src_column_id` int(11) NOT NULL,
|
||||
`dst_column_id` int(11) NOT NULL,
|
||||
`date` bigint(20) DEFAULT NULL,
|
||||
`time_spent` int(11) DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `src_column_id` (`src_column_id`),
|
||||
KEY `dst_column_id` (`dst_column_id`),
|
||||
KEY `transitions_task_index` (`task_id`),
|
||||
KEY `transitions_project_index` (`project_id`),
|
||||
KEY `transitions_user_index` (`user_id`),
|
||||
CONSTRAINT `transitions_ibfk_1` FOREIGN KEY (`src_column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `transitions_ibfk_2` FOREIGN KEY (`dst_column_id`) REFERENCES `columns` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `transitions_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `transitions_ibfk_4` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `transitions_ibfk_5` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `user_has_metadata`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `user_has_metadata` (
|
||||
`user_id` int(11) NOT NULL,
|
||||
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`changed_by` int(11) NOT NULL DEFAULT '0',
|
||||
`changed_on` int(11) NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `user_id` (`user_id`,`name`),
|
||||
CONSTRAINT `user_has_metadata_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `user_has_notification_types`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `user_has_notification_types` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`notification_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `user_has_notification_types_user_idx` (`user_id`,`notification_type`),
|
||||
CONSTRAINT `user_has_notification_types_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `user_has_notifications`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `user_has_notifications` (
|
||||
`user_id` int(11) NOT NULL,
|
||||
`project_id` int(11) NOT NULL,
|
||||
UNIQUE KEY `user_has_notifications_unique_idx` (`user_id`,`project_id`),
|
||||
KEY `user_has_notifications_ibfk_2` (`project_id`),
|
||||
CONSTRAINT `user_has_notifications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `user_has_notifications_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `user_has_unread_notifications`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `user_has_unread_notifications` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`date_creation` bigint(20) NOT NULL,
|
||||
`event_name` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`event_data` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
CONSTRAINT `user_has_unread_notifications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
DROP TABLE IF EXISTS `users`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
SET character_set_client = utf8mb4 ;
|
||||
CREATE TABLE `users` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`is_ldap_user` tinyint(1) DEFAULT '0',
|
||||
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`google_id` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`github_id` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`notifications_enabled` tinyint(1) DEFAULT '0',
|
||||
`timezone` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`language` varchar(11) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`disable_login_form` tinyint(1) DEFAULT '0',
|
||||
`twofactor_activated` tinyint(1) DEFAULT '0',
|
||||
`twofactor_secret` char(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`token` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '',
|
||||
`notifications_filter` int(11) DEFAULT '4',
|
||||
`nb_failed_login` int(11) DEFAULT '0',
|
||||
`lock_expiration_date` bigint(20) DEFAULT NULL,
|
||||
`gitlab_id` int(11) DEFAULT NULL,
|
||||
`role` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'app-user',
|
||||
`is_active` tinyint(1) DEFAULT '1',
|
||||
`avatar_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`api_access_token` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`filter` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `users_username_idx` (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
LOCK TABLES `settings` WRITE;
|
||||
/*!40000 ALTER TABLE `settings` DISABLE KEYS */;
|
||||
INSERT INTO `settings` VALUES ('api_token','0fde96ab43568a586f9e4ab95e6a38e7a955dcc6124a073f023e951a4197',0,0),('application_currency','USD',0,0),('application_date_format','m/d/Y',0,0),('application_language','en_US',0,0),('application_stylesheet','',0,0),('application_timezone','UTC',0,0),('application_url','',0,0),('board_columns','',0,0),('board_highlight_period','172800',0,0),('board_private_refresh_interval','10',0,0),('board_public_refresh_interval','60',0,0),('calendar_project_tasks','date_started',0,0),('calendar_user_subtasks_time_tracking','0',0,0),('calendar_user_tasks','date_started',0,0),('cfd_include_closed_tasks','1',0,0),('default_color','yellow',0,0),('integration_gravatar','0',0,0),('password_reset','1',0,0),('project_categories','',0,0),('subtask_restriction','0',0,0),('subtask_time_tracking','1',0,0),('webhook_token','b652b0d2d3e086025f8c3b6797f571b2139ea7bbfdca534f680ba7e41a32',0,0),('webhook_url','',0,0);
|
||||
/*!40000 ALTER TABLE `settings` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
LOCK TABLES `links` WRITE;
|
||||
/*!40000 ALTER TABLE `links` DISABLE KEYS */;
|
||||
INSERT INTO `links` VALUES (1,'relates to',0),(2,'blocks',3),(3,'is blocked by',2),(4,'duplicates',5),(5,'is duplicated by',4),(6,'is a child of',7),(7,'is a parent of',6),(8,'targets milestone',9),(9,'is a milestone of',8),(10,'fixes',11),(11,'is fixed by',10);
|
||||
/*!40000 ALTER TABLE `links` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
INSERT INTO users (username, password, role) VALUES ('admin', '$2y$10$GzDCeQl/GdH.pCZfz4fWdO3qmayutRCmxEIY9U9t1k9q9F89VNDCm', 'app-admin');
|
||||
INSERT INTO schema_version VALUES ('133');
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user