Bug 23168: Enable plugins using plain SQL
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 20 Jun 2019 15:03:30 +0000 (12:03 -0300)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Thu, 20 Jun 2019 15:40:50 +0000 (16:40 +0100)
To test:
- On a clean 18.11.x, install a plugin [1]
- Run:
  $ sudo koha-mysql kohadev
  > SELECT * FROM plugin_data;
=> SUCCESS: Notice there's a __INSTALLED_VERSION__ line for your plugin
- Checkout latest master, restart all the things
- Run:
  $ updatedatabase
=> FAIL: It fails on 18.12.00.069 because the plugin_methods table doesn't exist
- Run:
  $ sudo koha-mysql kohadev
  > SELECT * FROM plugin_data;
=> FAIL: No __ENABLED__ line for your plugin
- Apply the patch
- Run:
  $ updatedatabase
=> SUCCESS: Update passes the 18.12.00.069 step correctly
- Run:
  $ sudo koha-mysql kohadev
  > SELECT * FROM plugin_data;
=> SUCCESS: There's an __ENABLED__ line for your plugin
- Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

installer/data/mysql/updatedatabase.pl

index fb123a0..7c8bec4 100755 (executable)
@@ -18435,12 +18435,16 @@ if ( CheckVersion($DBversion) ) {
 $DBversion = '18.12.00.069';
 if( CheckVersion( $DBversion ) ) {
 
-    use Koha::Plugins;
-
-    my @plugins = Koha::Plugins->new({ enable_plugins => 1 })->GetPlugins({ all => 1 });
-    foreach my $plugin ( @plugins ) {
-        $plugin->enable;
-    }
+    $dbh->do(q{
+        INSERT INTO plugin_data
+            (plugin_class, plugin_key, plugin_value)
+        SELECT
+            plugin_class,
+            '__ENABLED__',
+            1
+        FROM plugin_data
+        WHERE plugin_key='__INSTALLED_VERSION__'
+    });
 
     # Always end with this (adjust the bug info)
     SetVersion( $DBversion );