diff options
Diffstat (limited to 'maintenance/patchSql.php')
-rw-r--r-- | maintenance/patchSql.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/maintenance/patchSql.php b/maintenance/patchSql.php new file mode 100644 index 00000000..42380eea --- /dev/null +++ b/maintenance/patchSql.php @@ -0,0 +1,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"; +} |