Reviewed:  https://reviews.mahara.org/3716
Committed: 
https://git.mahara.org/mahara/mahara/commit/606eff4ab70c96cd42c624d9eeabc90058e579fb
Submitter: Robert Lyon ([email protected])
Branch:    master

commit 606eff4ab70c96cd42c624d9eeabc90058e579fb
Author: Nigel Cunningham <[email protected]>
Date:   Thu Dec 18 16:10:07 2014 +1100

Bug1287344: Don't try to delete missing artefact plugins' data

Don't try to delete the data of missing artefact plugins when
upgrading. The user might want the data but be unable to get
a matching version at the moment.

behatnotneeded: DB upgrading

Change-Id: I52dfec0d97a4bf36a96ca41823c8203f5abb8c73
Signed-off-by: Nigel Cunningham <[email protected]>

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask 
on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1287344

Title:
  artefact installed upgrade problem

Status in Mahara:
  Fix Committed

Bug description:
  When there is an artefact plugin missing and one tries to upgrade
  another artefact plugin there is an error:

  [WAR] cb (lib/errors.php:739) Failed to get a recordset: postgres7 error: 
[-1: ERROR:  update or delete on table "artefact_installed_type" violates 
foreign key constraint "arte_art_fk" on table "artefact", referer: 
https://mahara-testing/admin/upgrade.php
  [Tue Mar 04 08:52:46 2014] [error] [client 127.0.0.1] [WAR] cb 
(lib/errors.php:739) DETAIL:  Key (name)=(socialprofile) is still referenced 
from table "artefact".] in adodb_throw(DELETE FROM "artefact_installed_type" 
WHERE (plugin = ? AND name NOT IN 
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)), Array), referer: 
https://mahara-testing/admin/upgrade.php

  This is due to the fact the missing plugin has artefacts in the
  artefact table.

  This line in lib/upgrade.php (approx line 500)
   
              delete_records_select('artefact_installed_type', $select,
                                    array_merge(array($pluginname),$types));

  needs to have some sort of checking if associated items exist for the
  plugin being removed and remove them first (or have some try { } catch
  (Exception $e) {} to let the user know that there was an issue with
  plugin A but still allow plugin B to be upgraded.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1287344/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mahara-contributors
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~mahara-contributors
More help   : https://help.launchpad.net/ListHelp

Reply via email to