summaryrefslogtreecommitdiff
path: root/maintenance/patchSql.php
blob: 42380eea80018268c2f08d49b637414979d43539 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
/**
 * Manually run an SQL patch outside of the general updaters.
 * This ensures that the DB options (charset, prefix, engine) are correctly set.
 *
 * @file
 * @ingroup Maintenance
 */

require_once 'commandLine.inc';
require_once "$IP/maintenance/updaters.inc";

if( $args ) {
	foreach( $args as $arg ) {
		$files = array(
			$arg,
			archive( $arg ),
			archive( "patch-$arg.sql" ),
		);
		foreach( $files as $file ) {
			if( file_exists( $file ) ) {
				echo "$file ...\n";
				dbsource( $file );
				continue 2;
			}
		}
		echo "Could not find $arg\n";
	}
	echo "done.\n";
} else {
	echo "Run an SQL file into the DB, replacing prefix and charset vars.\n";
	echo "Usage:\n";
	echo "  php maintenance/patchSql.php file1.sql file2.sql ...\n";
	echo "\n";
	echo "Paths in maintenance/archive are automatically expanded if a local file isn't found.\n";
}