From c66884be0af5b602d853a97a4fece1682e683575 Mon Sep 17 00:00:00 2001 From: Pierre Goiffon Date: Fri, 16 Mar 2018 10:00:04 +0000 Subject: [PATCH] =?UTF-8?q?N=C2=B01001=20setup=20:=20log=20all=20modificat?= =?UTF-8?q?ions=20done=20on=20the=20DB=20in=20a=20SQL=20file=20(/log/setup?= =?UTF-8?q?-queries-YYYY-MM-DD=5FHH-mm.sql)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SVN:trunk[5445] --- setup/runtimeenv.class.inc.php | 20 ++++++++++++++++++++ setup/setuputils.class.inc.php | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/setup/runtimeenv.class.inc.php b/setup/runtimeenv.class.inc.php index 89c660ee0..50c1b6014 100644 --- a/setup/runtimeenv.class.inc.php +++ b/setup/runtimeenv.class.inc.php @@ -99,6 +99,7 @@ class RunTimeEnvironment public function LogQueryCallback($sQuery, $fDuration) { $this->log_info(sprintf('%.3fs - query: %s ', $fDuration, $sQuery)); + $this->log_db_query($sQuery); } /** @@ -917,6 +918,25 @@ class RunTimeEnvironment { SetupPage::log_ok($sText); } + + /** + * Writes queries run by the setup in a SQL file + * + * @param string $sQuery + * + * @since 2.5 #1001 utf8mb4 switch + * @uses \SetupUtils::GetSetupQueriesFilePath() + */ + protected function log_db_query($sQuery) + { + $sSetupQueriesFilePath = SetupUtils::GetSetupQueriesFilePath(); + $hSetupQueriesFile = @fopen($sSetupQueriesFilePath, 'a'); + if ($hSetupQueriesFile !== false) + { + fwrite($hSetupQueriesFile, "$sQuery\n"); + fclose($hSetupQueriesFile); + } + } public function GetCurrentDataModelVersion() { diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index 62e92fa12..781cc7611 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -1821,6 +1821,14 @@ EOF } return $aLicenses; } + + /** + * @return string path to the log file where the create and/or alter queries are written + */ + static public function GetSetupQueriesFilePath() + { + return APPROOT.'log/setup-queries-'.strftime('%Y-%m-%d_%H_%M').'.sql'; + } } /**