summaryrefslogtreecommitdiff
path: root/maintenance/patchSql.php
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2008-08-15 01:29:47 +0200
committerPierre Schmitz <pierre@archlinux.de>2008-08-15 01:29:47 +0200
commit370e83bb0dfd0c70de268c93bf07ad5ee0897192 (patch)
tree491674f4c242e4d6ba0d04eafa305174c35a3391 /maintenance/patchSql.php
parentf4debf0f12d0524d2b2427c55ea3f16b680fad97 (diff)
Update auf 1.13.0
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";
+}