From 61ff99c410d8f1ad900ed22426ab2c2d1539d933 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 23 Nov 2020 18:58:18 +0000 Subject: [PATCH] Command line option to check initial values --- src/Console/DatabaseStructure.php | 7 +++- src/Database/DBStructure.php | 62 ++++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/Console/DatabaseStructure.php b/src/Console/DatabaseStructure.php index a1b4fdbfe8..5a92587fc3 100644 --- a/src/Console/DatabaseStructure.php +++ b/src/Console/DatabaseStructure.php @@ -55,6 +55,7 @@ Commands update Update database schema dumpsql Dump database schema toinnodb Convert all tables from MyISAM or InnoDB in the Antelope file format to InnoDB in the Barracuda file format + initial Set needed initial values in the tables version Set the database to a given number Options @@ -123,7 +124,11 @@ HELP; DBStructure::setDatabaseVersion($this->getArgument(1)); $output = ob_get_clean(); break; - + case "initial": + ob_start(); + DBStructure::checkInitialValues(true); + $output = ob_get_clean(); + break; default: $output = 'Unknown command: ' . $this->getArgument(0); } diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index 22b51af216..bda6f81f76 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -1046,20 +1046,34 @@ class DBStructure /** * Check if initial database values do exist - or create them */ - public static function checkInitialValues() + public static function checkInitialValues(bool $verbose = false) { - if (self::existsTable('verb') && !DBA::exists('verb', ['id' => 1])) { - foreach (Item::ACTIVITIES as $index => $activity) { - DBA::insert('verb', ['id' => $index + 1, 'name' => $activity], Database::INSERT_IGNORE); + if (self::existsTable('verb')) { + if (!DBA::exists('verb', ['id' => 1])) { + foreach (Item::ACTIVITIES as $index => $activity) { + DBA::insert('verb', ['id' => $index + 1, 'name' => $activity], Database::INSERT_IGNORE); + } + if ($verbose) { + echo "verb: activities added\n"; + } + } elseif ($verbose) { + echo "verb: activities already added\n"; } - } - if (self::existsTable('verb') && !DBA::exists('verb', ['id' => 0])) { - DBA::insert('verb', ['name' => '']); - $lastid = DBA::lastInsertId(); - if ($lastid != 0) { - DBA::update('verb', ['id' => 0], ['id' => $lastid]); + if (!DBA::exists('verb', ['id' => 0])) { + DBA::insert('verb', ['name' => '']); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('verb', ['id' => 0], ['id' => $lastid]); + if ($verbose) { + echo "Zero verb added\n"; + } + } + } elseif ($verbose) { + echo "Zero verb already added\n"; } + } elseif ($verbose) { + echo "verb: Table not found\n"; } if (self::existsTable('user') && !DBA::exists('user', ['uid' => 0])) { @@ -1072,7 +1086,14 @@ class DBStructure $lastid = DBA::lastInsertId(); if ($lastid != 0) { DBA::update('user', ['uid' => 0], ['uid' => $lastid]); + if ($verbose) { + echo "Zero user added\n"; + } } + } elseif (self::existsTable('user')) { + echo "Zero user already added\n"; + } else { + echo "user: Table not found\n"; } if (self::existsTable('contact') && !DBA::exists('contact', ['id' => 0])) { @@ -1080,7 +1101,14 @@ class DBStructure $lastid = DBA::lastInsertId(); if ($lastid != 0) { DBA::update('contact', ['id' => 0], ['id' => $lastid]); + if ($verbose) { + echo "Zero contact added\n"; + } } + } elseif (self::existsTable('contact')) { + echo "Zero contact already added\n"; + } else { + echo "contact: Table not found\n"; } if (self::existsTable('permissionset')) { @@ -1089,7 +1117,12 @@ class DBStructure $lastid = DBA::lastInsertId(); if ($lastid != 0) { DBA::update('permissionset', ['id' => 0], ['id' => $lastid]); + if ($verbose) { + echo "Zero tag added\n"; + } } + } elseif ($verbose) { + echo "Zero permissionset already added\n"; } if (!self::existsForeignKeyForField('item', 'psid')) { $sets = DBA::p("SELECT `psid`, `item`.`uid`, `item`.`private` FROM `item` @@ -1112,6 +1145,8 @@ class DBStructure } DBA::close($sets); } + } elseif ($verbose) { + echo "permissionset: Table not found\n"; } if (self::existsTable('tag') && !DBA::exists('tag', ['id' => 0])) { @@ -1119,7 +1154,14 @@ class DBStructure $lastid = DBA::lastInsertId(); if ($lastid != 0) { DBA::update('tag', ['id' => 0], ['id' => $lastid]); + if ($verbose) { + echo "Zero tag added\n"; + } } + } elseif (self::existsTable('tag')) { + echo "Zero tag already added\n"; + } else { + echo "tag: Table not found\n"; } if (!self::existsForeignKeyForField('tokens', 'client_id')) {