MT-90: Improvements CLI tool: Upgrade cases-lists and cases-list-counters.
This commit is contained in:
@@ -189,6 +189,46 @@ EOT
|
|||||||
CLI::taskArg("workspace-name", true, true);
|
CLI::taskArg("workspace-name", true, true);
|
||||||
CLI::taskRun("run_database_generate_self_service_by_value");
|
CLI::taskRun("run_database_generate_self_service_by_value");
|
||||||
|
|
||||||
|
CLI::taskName('database-verify-consistency');
|
||||||
|
CLI::taskDescription(<<<EOT
|
||||||
|
Verify the database data is consistent so any database-upgrade
|
||||||
|
operation cloud be executed flawlessly.
|
||||||
|
|
||||||
|
Specify the workspaces whose database schema should be verified.
|
||||||
|
The workspace parameter is mandatory.
|
||||||
|
|
||||||
|
This command will read the system schema and data in an attempt to verify the database
|
||||||
|
integrity. Use this command to check the database data consistency before any costly
|
||||||
|
database-upgrade operation is planned to be executed.
|
||||||
|
EOT
|
||||||
|
);
|
||||||
|
CLI::taskArg('workspace', true, true);
|
||||||
|
CLI::taskRun("run_database_verify_consistency");
|
||||||
|
|
||||||
|
CLI::taskName('database-verify-migration-consistency');
|
||||||
|
CLI::taskDescription(<<<EOT
|
||||||
|
Verify that the already migrated data is consistent there was not
|
||||||
|
data loss of any kind
|
||||||
|
|
||||||
|
Specify the workspaces whose database schema should be verified.
|
||||||
|
The workspace parameter is mandatory.
|
||||||
|
|
||||||
|
This command will read the Cancelled, Completed, Inbox, My Inbox, participated
|
||||||
|
unassigned data in an attempt to verify the database integrity. It's recommended
|
||||||
|
to run this script after the migrate cases job has been executed.
|
||||||
|
EOT
|
||||||
|
);
|
||||||
|
CLI::taskArg('workspace', true, true);
|
||||||
|
CLI::taskRun("run_database_verify_migration_consistency");
|
||||||
|
|
||||||
|
CLI::taskName('migrate-counters');
|
||||||
|
CLI::taskDescription(<<<EOT
|
||||||
|
Migrate and regenerate if required, the list counters for each user.
|
||||||
|
EOT
|
||||||
|
);
|
||||||
|
CLI::taskArg('workspace', true, true);
|
||||||
|
CLI::taskRun("run_migrate_counters");
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
CLI::taskName("check-workspace-disabled-code");
|
CLI::taskName("check-workspace-disabled-code");
|
||||||
CLI::taskDescription(<<<EOT
|
CLI::taskDescription(<<<EOT
|
||||||
@@ -324,6 +364,11 @@ function run_database_check($args, $opts) {
|
|||||||
|
|
||||||
function run_migrate_new_cases_lists($args, $opts) {
|
function run_migrate_new_cases_lists($args, $opts) {
|
||||||
migrate_new_cases_lists("migrate", $args);
|
migrate_new_cases_lists("migrate", $args);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_migrate_counters($args, $opts) {
|
||||||
|
migrate_counters("migrate", $args);
|
||||||
}
|
}
|
||||||
|
|
||||||
function database_upgrade($command, $args) {
|
function database_upgrade($command, $args) {
|
||||||
@@ -609,6 +654,62 @@ function run_database_generate_self_service_by_value($args, $opts)
|
|||||||
echo CLI::error($e->getMessage()) . "\n";
|
echo CLI::error($e->getMessage()) . "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function run_database_verify_consistency($args, $opts)
|
||||||
|
{
|
||||||
|
verifyAppCacheConsistency($args);
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_database_verify_migration_consistency($args, $opts)
|
||||||
|
{
|
||||||
|
verifyMigratedDataConsistency($args);
|
||||||
|
}
|
||||||
|
|
||||||
|
function verifyAppCacheConsistency($args)
|
||||||
|
{
|
||||||
|
$workspaces = get_workspaces_from_args($args);
|
||||||
|
foreach ($workspaces as $workspace) {
|
||||||
|
verifyWorkspaceConsistency($workspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function verifyWorkspaceConsistency($workspace)
|
||||||
|
{
|
||||||
|
$isConsistent = true;
|
||||||
|
print_r("Verifying data in workspace " . pakeColor::colorize($workspace->name, "INFO") . "\n");
|
||||||
|
$inconsistentUsers = $workspace->hasMissingUsers();
|
||||||
|
$inconsistentTasks = $workspace->hasMissingTasks();
|
||||||
|
$inconsistentProcesses = $workspace->hasMissingProcesses();
|
||||||
|
$inconsistentDelegations = $workspace->hasMissingAppDelegations();
|
||||||
|
|
||||||
|
if ($inconsistentUsers || $inconsistentTasks || $inconsistentProcesses || $inconsistentDelegations) {
|
||||||
|
$isConsistent = false;
|
||||||
|
}
|
||||||
|
return $isConsistent;
|
||||||
|
}
|
||||||
|
|
||||||
|
function verifyMigratedDataConsistency($args)
|
||||||
|
{
|
||||||
|
$workspaces = get_workspaces_from_args($args);
|
||||||
|
$inconsistentRecords = 0;
|
||||||
|
foreach ($workspaces as $workspace) {
|
||||||
|
print_r("Verifying data in workspace " . pakeColor::colorize($workspace->name, "INFO") . "\n");
|
||||||
|
$lists = array(
|
||||||
|
'LIST_CANCELLED',
|
||||||
|
'LIST_COMPLETED',
|
||||||
|
'LIST_INBOX',
|
||||||
|
'LIST_PARTICIPATED_HISTORY',
|
||||||
|
'LIST_PARTICIPATED_LAST',
|
||||||
|
'LIST_MY_INBOX',
|
||||||
|
'LIST_UNASSIGNED',
|
||||||
|
);
|
||||||
|
foreach ($lists as $list) {
|
||||||
|
$inconsistentRecords += $workspace->verifyListData($list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $inconsistentRecords;
|
||||||
|
}
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
function run_check_workspace_disabled_code($args, $opts)
|
function run_check_workspace_disabled_code($args, $opts)
|
||||||
{
|
{
|
||||||
@@ -690,5 +791,21 @@ function migrate_new_cases_lists($command, $args) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function migrate_counters($command, $args) {
|
||||||
|
$workspaces = get_workspaces_from_args($args);
|
||||||
|
|
||||||
|
foreach ($workspaces as $workspace) {
|
||||||
|
print_r("Regenerating counters in: " . pakeColor::colorize($workspace->name, "INFO") . "\n");
|
||||||
|
|
||||||
|
try {
|
||||||
|
$workspace->migrateCounters($workspace->name, true);
|
||||||
|
|
||||||
|
echo "> Counters are done\n";
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "> Error: ".CLI::error($e->getMessage()) . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4227,7 +4227,7 @@
|
|||||||
<column name="APP_PRO_TITLE" type="VARCHAR" size="255" required="false" default=""/>
|
<column name="APP_PRO_TITLE" type="VARCHAR" size="255" required="false" default=""/>
|
||||||
<column name="APP_TAS_TITLE" type="VARCHAR" size="255" required="false" default=""/>
|
<column name="APP_TAS_TITLE" type="VARCHAR" size="255" required="false" default=""/>
|
||||||
<column name="APP_CREATE_DATE" type="TIMESTAMP" required="false"/>
|
<column name="APP_CREATE_DATE" type="TIMESTAMP" required="false"/>
|
||||||
<column name="APP_FINISH_DATE" type="TIMESTAMP" required="true"/>
|
<column name="APP_FINISH_DATE" type="TIMESTAMP" required="false"/>
|
||||||
<column name="DEL_INDEX" type="INTEGER" required="true" default="0"/>
|
<column name="DEL_INDEX" type="INTEGER" required="true" default="0"/>
|
||||||
<column name="DEL_PREVIOUS_USR_UID" type="VARCHAR" size="32" default=""/>
|
<column name="DEL_PREVIOUS_USR_UID" type="VARCHAR" size="32" default=""/>
|
||||||
<column name="DEL_CURRENT_USR_USERNAME" type="VARCHAR" size="100" default=""/>
|
<column name="DEL_CURRENT_USR_USERNAME" type="VARCHAR" size="100" default=""/>
|
||||||
|
|||||||
Reference in New Issue
Block a user