cherry-pick bdaee6f6594532409ce55e9cde0f942f96ec4181
authorjeroendedauw <jeroendedauw@gmail.com>
Thu, 23 Aug 2012 20:43:20 +0000 (22:43 +0200)
committerjeroendedauw <jeroendedauw@gmail.com>
Fri, 24 Aug 2012 14:54:06 +0000 (16:54 +0200)
Change-Id: I5251c8f83f401731c3027718656cb65d8d910f22

includes/installer/DatabaseUpdater.php

index 6483c4e..d344704 100644 (file)
@@ -561,15 +561,27 @@ abstract class DatabaseUpdater {
        }
 
        /**
+        * If the specified table exists, drop it, or execute the
+        * patch if one is provided.
+        *
+        * Public @since 1.20
+        *
         * @param $table string
-        * @param $patch string
+        * @param $patch string|false
         * @param $fullpath bool
         */
-       protected function dropTable( $table, $patch, $fullpath = false ) {
+       public function dropTable( $table, $patch = false, $fullpath = false ) {
                if ( $this->db->tableExists( $table, __METHOD__ ) ) {
-                       $this->output( "Dropping table $table... " );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $msg = "Dropping table $table";
+
+                       if ( $patch === false ) {
+                               $this->output( "$msg ..." );
+                               $this->db->dropTable( $table, __METHOD__ );
+                               $this->output( "done.\n" );
+                       }
+                       else {
+                               $this->applyPatch( $patch, $fullpath, $msg );
+                       }
                } else {
                        $this->output( "...$table doesn't exist.\n" );
                }