X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=dbinstall.php;h=d150e7350e77ed0340ed4384910532ae6766ee69;hb=15ae2165165da813912300d223c50b74f44cc1e0;hp=8f1e867f2d2ab3fce0367226511fb61f77e74696;hpb=21054f67875d0c0c947cc46fe438f407dbe94ee7;p=timetracker.git diff --git a/dbinstall.php b/dbinstall.php index 8f1e867f..d150e735 100644 --- a/dbinstall.php +++ b/dbinstall.php @@ -789,10 +789,10 @@ if ($_POST) { if (is_a($result, 'PEAR_Error')) die($result->getMessage()); $row = $result->fetchRow(); if ($row['count'] == 0) - ttRoleHelper::createPredefinedRoles($team_id, $lang); + ttRoleHelper::createPredefinedRoles_1_17_44($team_id, $lang); // Obtain new role id based on legacy role. - $role_id = ttRoleHelper::getRoleByRank($legacy_role, $team_id); + $role_id = ttRoleHelper::getRoleByRank_1_17_44($legacy_role, $team_id); if (!$role_id) continue; // Role not found, nothing to do. $sql = "update tt_users set role_id = $role_id where id = $user_id and team_id = $team_id"; @@ -805,7 +805,7 @@ if ($_POST) { print "Updated $users_updated users...
\n"; } - if ($_POST["convert11744to11779"]) { + if ($_POST["convert11744to11797"]) { setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.44') set rights = replace(rights, 'override_punch_mode,override_date_lock', 'override_punch_mode,override_own_punch_mode,override_date_lock')"); setChange("UPDATE `tt_site_config` SET param_value = '1.17.48' where param_name = 'version_db' and param_value = '1.17.44'"); setChange("update `tt_users` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.48') set role_id = (select id from tt_roles where team_id = 0 and rank = 512) where role = 324"); @@ -869,18 +869,140 @@ if ($_POST) { setChange("UPDATE `tt_site_config` SET param_value = '1.17.78', modified = now() where param_name = 'version_db' and param_value = '1.17.77'"); setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.78') set rights = replace(rights, 'manage_own_settings,view_projects,view_users', 'view_own_projects,manage_own_settings,view_users')"); setChange("UPDATE `tt_site_config` SET param_value = '1.17.79', modified = now() where param_name = 'version_db' and param_value = '1.17.78'"); + setChange("RENAME TABLE `tt_teams` TO `tt_groups`"); + setChange("ALTER TABLE `tt_monthly_quotas` DROP FOREIGN KEY FK_TT_TEAM_CONSTRAING"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.80', modified = now() where param_name = 'version_db' and param_value = '1.17.79'"); + setChange("ALTER TABLE `tt_roles` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_users` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_projects` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_tasks` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_invoices` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_cron` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_clients` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_custom_fields` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_predefined_expenses` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("ALTER TABLE `tt_monthly_quotas` CHANGE `team_id` `group_id` int(11) NOT NULL"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.81', modified = now() where param_name = 'version_db' and param_value = '1.17.80'"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.81') set rights = replace(rights, ',manage_invoices', ',manage_invoices,view_all_reports')"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.82', modified = now() where param_name = 'version_db' and param_value = '1.17.81'"); + setChange("ALTER TABLE `tt_groups` ADD `allow_ip` varchar(255) default NULL AFTER `bcc_email`"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.82') set rights = replace(rights, 'manage_invoices,view_all_reports', 'manage_invoices,override_allow_ip,view_all_reports')"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.83', modified = now() where param_name = 'version_db' and param_value = '1.17.82'"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.83') set rights = replace(rights, 'view_own_projects,manage_own_settings', 'view_own_projects,view_own_tasks,manage_own_settings')"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.84', modified = now() where param_name = 'version_db' and param_value = '1.17.83'"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.84') set rights = replace(rights, 'view_charts,override_punch_mode', 'view_charts,view_own_clients,override_punch_mode')"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.85', modified = now() where param_name = 'version_db' and param_value = '1.17.84'"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.85') set rights = replace(rights, 'override_allow_ip,view_all_reports', 'override_allow_ip,manage_basic_settings,view_all_reports')"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.85') set rights = replace(rights, 'manage_features,manage_basic_setting,manage_advanced_settings', 'manage_features,manage_advanced_settings')"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.86', modified = now() where param_name = 'version_db' and param_value = '1.17.85'"); + setChange("ALTER TABLE `tt_groups` ADD `password_complexity` varchar(64) default NULL AFTER `allow_ip`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.87', modified = now() where param_name = 'version_db' and param_value = '1.17.86'"); + setChange("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.17.87') set rights = replace(rights, 'manage_subgroups', 'manage_subgroups,delete_group') where rank = 512"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.88', modified = now() where param_name = 'version_db' and param_value = '1.17.87'"); + setChange("ALTER TABLE `tt_fav_reports` ADD `show_work_units` tinyint(4) NOT NULL DEFAULT '0' AFTER `show_custom_field_1`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.92', modified = now() where param_name = 'version_db' and param_value = '1.17.88'"); + setChange("ALTER TABLE `tt_log` ADD `group_id` int(11) default NULL AFTER `user_id`"); + setChange("ALTER TABLE `tt_expense_items` ADD `group_id` int(11) default NULL AFTER `user_id`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.96', modified = now() where param_name = 'version_db' and param_value = '1.17.92'"); + setChange("create index group_idx on tt_log(group_id)"); + setChange("create index group_idx on tt_expense_items(group_id)"); + setChange("UPDATE `tt_site_config` SET param_value = '1.17.97', modified = now() where param_name = 'version_db' and param_value = '1.17.96'"); + } + + // The update_group_id function updates group_id field in tt_log and tt_expense_items tables. + if ($_POST["update_group_id"]) { + $mdb2 = getConnection(); + + $sql = "(select distinct user_id from tt_log where group_id is null) union distinct (select distinct user_id from tt_expense_items where group_id is null)"; + $res = $mdb2->query($sql); + if (is_a($res, 'PEAR_Error')) { + die($res->getMessage()); + } + $users_updated = 0; + $tt_log_records_updated = 0; + $tt_expense_items_updated = 0; + + // Iterate through result set. + while ($val = $res->fetchRow()) { + $user_id = $val['user_id']; + $sql = "select group_id from tt_users where id = $user_id"; + $result = $mdb2->query($sql); + if (is_a($result, 'PEAR_Error')) { + die($res->getMessage()); + } + $value = $result->fetchRow(); + $group_id = $value['group_id']; + + if ($group_id) { + $sql = "update tt_log set group_id = $group_id where user_id = $user_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) { + die($affected->getMessage()); + } + $tt_log_records_updated += $affected; + + $sql = "update tt_expense_items set group_id = $group_id where user_id = $user_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) { + die($affected->getMessage()); + } + $tt_expense_items_updated += $affected; + $users_updated++; + } else { + print "Error: Could not find group for user $user_id...
\n"; + } + } + print "Updated $tt_log_records_updated tt_log records...
\n"; + print "Updated $tt_expense_items_updated tt_expense_items records...
\n"; + } + + if ($_POST["convert11797to11812"]) { + setChange("ALTER TABLE `tt_fav_reports` CHANGE `group_by` `group_by1` varchar(20) default NULL"); + setChange("ALTER TABLE `tt_fav_reports` ADD `group_by2` varchar(20) default NULL AFTER `group_by1`"); + setChange("ALTER TABLE `tt_fav_reports` ADD `group_by3` varchar(20) default NULL AFTER `group_by2`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.00', modified = now() where param_name = 'version_db' and param_value = '1.17.97'"); + setChange("create index log_idx on tt_custom_field_log(log_id)"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.05', modified = now() where param_name = 'version_db' and param_value = '1.18.00'"); + setChange("UPDATE `tt_groups` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.05') set org_id = id where org_id is null"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.06', modified = now() where param_name = 'version_db' and param_value = '1.18.05'"); + setChange("ALTER TABLE `tt_users` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("UPDATE `tt_users` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.06') set org_id = group_id where org_id is null"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.07', modified = now() where param_name = 'version_db' and param_value = '1.18.06'"); + setChange("ALTER TABLE `tt_roles` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("UPDATE `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.07') set org_id = group_id where org_id is null"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.08', modified = now() where param_name = 'version_db' and param_value = '1.18.07'"); + setChange("ALTER TABLE `tt_clients` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.09', modified = now() where param_name = 'version_db' and param_value = '1.18.08'"); + setChange("UPDATE `tt_clients` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.09') set org_id = group_id where org_id is null"); + setChange("ALTER TABLE `tt_projects` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("ALTER TABLE `tt_tasks` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.10', modified = now() where param_name = 'version_db' and param_value = '1.18.09'"); + setChange("UPDATE `tt_projects` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.10') set org_id = group_id where org_id is null"); + setChange("UPDATE `tt_tasks` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.10') set org_id = group_id where org_id is null"); + setChange("ALTER TABLE `tt_log` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("ALTER TABLE `tt_invoices` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.11', modified = now() where param_name = 'version_db' and param_value = '1.18.10'"); + setChange("UPDATE `tt_log` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.11') set org_id = group_id where org_id is null"); + setChange("UPDATE `tt_invoices` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.11') set org_id = group_id where org_id is null"); + setChange("ALTER TABLE `tt_user_project_binds` ADD `group_id` int(11) default NULL AFTER `project_id`"); + setChange("ALTER TABLE `tt_user_project_binds` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("ALTER TABLE `tt_project_task_binds` ADD `group_id` int(11) default NULL AFTER `task_id`"); + setChange("ALTER TABLE `tt_project_task_binds` ADD `org_id` int(11) default NULL AFTER `group_id`"); + setChange("UPDATE `tt_site_config` SET param_value = '1.18.12', modified = now() where param_name = 'version_db' and param_value = '1.18.11'"); + // TODO: this does not work as we just introduced group_id and it is NULL. Same for tt_project_task_binds. Improve. + // setChange("UPDATE `tt_user_project_binds` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.12') set org_id = group_id where org_id is null"); } if ($_POST["cleanup"]) { $mdb2 = getConnection(); - $inactive_teams = ttTeamHelper::getInactiveTeams(); + $inactive_groups = ttTeamHelper::getInactiveGroups(); - $count = count($inactive_teams); - print "$count inactive teams found...
\n"; + $count = count($inactive_groups); + print "$count inactive groups found...
\n"; for ($i = 0; $i < $count; $i++) { - print " deleting team ".$inactive_teams[$i]."
\n"; - $res = ttTeamHelper::delete($inactive_teams[$i]); + print " deleting group ".$inactive_groups[$i]."
\n"; + $res = ttTeamHelper::delete($inactive_groups[$i]); } setChange("OPTIMIZE TABLE tt_client_project_binds"); @@ -897,7 +1019,7 @@ if ($_POST) { setChange("OPTIMIZE TABLE tt_project_task_binds"); setChange("OPTIMIZE TABLE tt_projects"); setChange("OPTIMIZE TABLE tt_tasks"); - setChange("OPTIMIZE TABLE tt_teams"); + setChange("OPTIMIZE TABLE tt_groups"); setChange("OPTIMIZE TABLE tt_tmp_refs"); setChange("OPTIMIZE TABLE tt_user_project_binds"); setChange("OPTIMIZE TABLE tt_users"); @@ -914,7 +1036,7 @@ if ($_POST) {

DB Install

-
Create database structure (v1.17.79) + Create database structure (v1.18.12)
(applies only to new installations, do not execute when updating)
@@ -954,8 +1076,13 @@ if ($_POST) {
- Update database structure (v1.17.44 to v1.17.79) - + Update database structure (v1.17.44 to v1.17.97) +
+ + + + Update database structure (v1.17.97 to v1.18.12) +