summaryrefslogtreecommitdiff
path: root/maintenance/patchSql.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/patchSql.php')
-rw-r--r--maintenance/patchSql.php36
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";
+}