From 156712597c39d7e930118568fe3560eb8c066eda Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 10 May 2020 17:37:02 +0000 Subject: [PATCH] Improved update mechanism (more error handling) --- update.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/update.php b/update.php index be1890b707..bb733ebc20 100644 --- a/update.php +++ b/update.php @@ -435,13 +435,18 @@ function update_1347() function pre_update_1348() { DBA::insert('contact', ['nurl' => '']); - DBA::update('contact', ['id' => 0], ['id' => DBA::lastInsertId()]); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('contact', ['id' => 0], ['id' => $lastid]); + } // The tables "permissionset" and "tag" could or could not exist during the update. // This depends upon the previous version. Depending upon this situation we have to add // the "0" values before adding the foreign keys - or after would be sufficient. update_1348(); + + return Update::SUCCESS; } function update_1348() @@ -449,11 +454,17 @@ function update_1348() // Insert a permissionset with id=0 // Setting it to -1 and then changing the value to 0 tricks the auto increment DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); - DBA::update('permissionset', ['id' => 0], ['id' => DBA::lastInsertId()]); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('permissionset', ['id' => 0], ['id' => $lastid]); + } + DBA::insert('tag', ['name' => '']); - DBA::update('tag', ['id' => 0], ['id' => DBA::lastInsertId()]); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('tag', ['id' => 0], ['id' => $lastid]); + } - // to-do: Tag / contact return Update::SUCCESS; }