From 985b1e61b9ff18ebfe1493c10e473b95d67c763e Mon Sep 17 00:00:00 2001 From: Matthias Schmidt Date: Mon, 7 Jun 2021 10:16:44 +0200 Subject: [PATCH] Add update script to normalize package installation file logs --- ...e_com.woltlab.wcf_5.5_normalizeFileLog.php | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 wcfsetup/install/files/acp/update_com.woltlab.wcf_5.5_normalizeFileLog.php diff --git a/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.5_normalizeFileLog.php b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.5_normalizeFileLog.php new file mode 100644 index 0000000000..746d36a69f --- /dev/null +++ b/wcfsetup/install/files/acp/update_com.woltlab.wcf_5.5_normalizeFileLog.php @@ -0,0 +1,43 @@ + + * @package WoltLabSuite\Core + */ + +use wcf\system\WCF; +use wcf\util\FileUtil; + +$sql = "SELECT * + FROM wcf1_package_installation_file_log + WHERE filename LIKE ?"; +$statement = WCF::getDB()->prepare($sql); +$statement->execute(['./%']); + +$sql = "DELETE FROM wcf1_package_installation_file_log + WHERE packageID = ? + AND filename = ? + AND application = ?"; +$deleteStatement = WCF::getDB()->prepare($sql); + +$sql = "INSERT IGNORE INTO wcf1_package_installation_file_log + (packageID, filename, application) + VALUES (?, ?, ?)"; +$insertStatement = WCF::getDB()->prepare($sql); + +while ($row = $statement->fetchArray()) { + $deleteStatement->execute([ + $row['packageID'], + $row['filename'], + $row['application'], + ]); + $insertStatement->execute([ + $row['packageID'], + FileUtil::getRealPath($row['filename']), + $row['application'], + ]); +} -- 2.20.1