Command line option to check initial values

This commit is contained in:
Michael 2020-11-23 18:58:18 +00:00
parent 794f98f479
commit 61ff99c410
2 changed files with 58 additions and 11 deletions

View file

@ -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);
}

View file

@ -1046,21 +1046,35 @@ 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])) {
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])) {
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])) {
$user = [
@ -1072,16 +1086,30 @@ 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])) {
DBA::insert('contact', ['nurl' => '']);
$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')) {
if (!DBA::exists('permissionset', ['id' => 0])) {
@ -1089,8 +1117,13 @@ 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`
LEFT JOIN `permissionset` ON `permissionset`.`id` = `item`.`psid`
@ -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,8 +1154,15 @@ 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')) {
$tokens = DBA::p("SELECT `tokens`.`id` FROM `tokens`