Handy script to manually run a single sql patch file, with all the necessary options...
authorBrion Vibber <brion@users.mediawiki.org>
Wed, 19 Mar 2008 22:25:20 +0000 (22:25 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Wed, 19 Mar 2008 22:25:20 +0000 (22:25 +0000)
Commands like 'php maintenance/patchSql.php updatelog category'

maintenance/patchSql.php [new file with mode: 0644]

diff --git a/maintenance/patchSql.php b/maintenance/patchSql.php
new file mode 100644 (file)
index 0000000..9e2b5ca
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+
+// Manually run an SQL patch outside of the general updaters.
+// This ensures that the DB options (charset, prefix, engine) are correctly set.
+
+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";
+}