Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-11980

4.2 upgrade fails if obsolete option group(s) were not deleted during 3.3 upgrade

    Details

    • Type: Bug
    • Status: Done/Fixed
    • Priority: Minor
    • Resolution: Fixed/Completed
    • Affects Version/s: 4.2.8
    • Fix Version/s: 4.2.9
    • Component/s: Core CiviCRM
    • Labels:
      None

      Description

      The 4.2 upgrade fails with fatal DB error from createPriceSet call on line 376 IF option_group rows are present with this pattern in the name column:

      civicrm_price_field.amount.*

      The problem was reported on this forum post:
      http://forum.civicrm.org/index.php/topic,27744.msg118748.html#msg118748

      Looks like the problem condition was caused by a uncaught failure to execute deletion of this type of option_group row (should have been deleted by CRM_Upgrade_ThreeThree::upgrade_3_3_beta1)

      We do not know how prevalent the problem is, so for now the solution is:
      1. Add a test to verifyPreDBState for the presence of row(s) in civicrm_option_group WHERE name LIKE 'civicrm_price_field.amount.%'

      2. If found, we abort the upgrade with the following error message:


      "We found unexpected data values from an older version of CiviCRM in your database. The upgrade can not be run until this condition is corrected.

      Details: One or more rows are present in the civicrm_option_group with name like 'civicrm_price_field.amount.%'. <a href="%1">Check here for information on diagnosing and correcting this problem.</a>"


      (%1 links to the above forum post.)

        Attachments

          Activity

            People

            • Assignee:
              dgg David Greenberg
              Reporter:
              dgg David Greenberg
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: