Enable dropping of tables without having to create a file for each if you want correc...
authorjeroendedauw <jeroendedauw@gmail.com>
Thu, 23 Aug 2012 20:43:20 +0000 (22:43 +0200)
committerjeroendedauw <jeroendedauw@gmail.com>
Thu, 23 Aug 2012 20:43:20 +0000 (22:43 +0200)
Change-Id: I374885517928430d00446b9711ea5005f58dc2a1

includes/installer/DatabaseUpdater.php

index d411a27..d989427 100644 (file)
@@ -558,13 +558,28 @@ 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->applyPatch( $patch, $fullpath, "Dropping table $table" );
+                       $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" );
                }