15 define(
'PKP_TEST_ENTIRE_DB', 1);
30 foreach ($tables as $table) {
34 $createLikeSql =
"CREATE TABLE backup_$table LIKE $table";
41 $createLikeSql =
"CREATE TABLE backup_$table (LIKE $table)";
44 $test->fail(
"Unknown driver \"$driver\"");
49 "DROP TABLE IF EXISTS backup_$table",
51 "INSERT INTO backup_$table SELECT * FROM $table"
53 foreach ($sqls as $sql) {
54 if (!$dao->update($sql,
false,
true,
false)) {
55 $test->fail(
"Error while backing up $table: offending SQL is '$sql'");
68 foreach ($tables as $table) {
70 "TRUNCATE TABLE $table",
71 "INSERT INTO $table SELECT * FROM backup_$table",
72 "DROP TABLE backup_$table"
74 foreach ($sqls as $sql) {
75 if (!$dao->update($sql,
false,
true,
false)) {
76 $test->fail(
"Error while restoring $table: offending SQL is '$sql'");
86 $filename = getenv(
'DATABASEDUMP');
87 if (!$filename || !file_exists($filename)) {
88 $test->fail(
'Database dump filename needs to be specified in env variable DATABASEDUMP!');
92 $output = $status =
null;
97 escapeshellarg($filename) .
98 ' | /usr/bin/mysql --user=' .
110 $test->fail(
"Error while restoring database from \"$filename\" (command: \"$cmd\").");
119 exec($cmd =
'zcat ' .
120 escapeshellarg($filename) .
121 ' | /usr/bin/psql --username=' .
132 $test->fail(
"Error while restoring database from \"$filename\" (command: \"$cmd\".");
151 if (extension_loaded(
'xdebug')) {
152 static $previous =
null;
154 assert(!is_null($previous));
155 ini_set(
'xdebug.scream', $previous);
157 $previous = ini_get(
'xdebug.scream');
158 ini_set(
'xdebug.scream',
false);