Upgrade to Nightly (5.40.alpha1) from Stable (5.38.1) fails with DB Error: constraint violation
Looking to test https://github.com/civicrm/civicrm-core/pull/20672 I ran into an upgrade issue.
- WP 5.7.2
- CiviCRM 5.38.1
- php 7.3
- MariaDB 10.3
Upgrade from Stable to Nightly at https://download.civicrm.org/latest/civicrm-NIGHTLY-wordpress.zip as the first step before applying the patch.
Running either the Graphical Upgrader or cv upgrade:db
produces DB Error: constraint violation
From the Logs:
Jul 05 13:34:23 [info] $CRM_Queue_Page_AJAX_runNext_error = PEAR_Exception: "DB Error: constraint violation"
* ERROR TYPE: DB_Error
* ERROR CODE: -3
* ERROR MESSAGE: DB Error: constraint violation
* ERROR MODE: 16
* ERROR USERINFO:
ALTER TABLE `civicrm_contribution_product`
ADD CONSTRAINT `FK_civicrm_contribution_product_product_id`
FOREIGN KEY (`product_id`) REFERENCES `civicrm_product` (`id`)
ON DELETE CASCADE;
[nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`wpcv_civicrm`.`#sql-696_454`, CONSTRAINT `FK_civicrm_contribution_product_p
roduct_id` FOREIGN KEY (`product_id`) REFERENCES `civicrm_product` (`id`) ON DELETE CASCADE)]
* ERROR DEBUGINFO:
ALTER TABLE `civicrm_contribution_product`
ADD CONSTRAINT `FK_civicrm_contribution_product_product_id`
FOREIGN KEY (`product_id`) REFERENCES `civicrm_product` (`id`)
ON DELETE CASCADE;
[nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`wpcv_civicrm`.`#sql-696_454`, CONSTRAINT `FK_civicrm_contribution_product_p
roduct_id` FOREIGN KEY (`product_id`) REFERENCES `civicrm_product` (`id`) ON DELETE CASCADE)]
#0 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): CRM_Core_Error::exceptionHandler(Object(DB_Error[5/91811]
#1 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB.php(997): PEAR_Error->__construct("DB Error: constraint violation", -3, 16, (Array:2), "
\n ALTER TABLE `civicrm_contribution_product`\n ADD CONSTRAIN...")
#2 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-3, 16, (Array:2), "\n ALTER
TABLE `civicrm_contribution_product`\n ADD CONSTRAIN...")
#3 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -3, 16, (Array:2), "\n ALTER TABLE `civicrm_contribution_product`\n ADD CONSTRAIN...", "DB_Error", TRUE)
#4 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1928): PEAR->__call("raiseError", (Array:7))
#5 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(936): DB_common->raiseError(-3, NULL, NULL, "\n ALTER TABLE `civicrm_contribution_product`\n ADD CONSTRAIN...", "1452 ** Cannot add or update a child row: a foreign key constraint fails (`ss...")
#6 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(406): DB_mysqli->mysqliRaiseError()
#7 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1234): DB_mysqli->simpleQuery("\n ALTER TABLE `civicrm_contribution_product`\n ADD CONSTRAIN...")
#8 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2696): DB_common->query("\n ALTER TABLE `civicrm_contribution_product`\n
ADD CONSTRAIN...")
#9 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1829): DB_DataObject->_query("\n ALTER TABLE `civicrm_contribution_produ
ct`\n ADD CONSTRAIN...")
#10 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(468): DB_DataObject->query("\n ALTER TABLE `civicrm_contribution_product`\n
ADD CONSTRAIN...")
#11 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1613): CRM_Core_DAO->query("\n ALTER TABLE `civicrm_contribution_product`\n
ADD CONSTRAIN...", FALSE)
#12 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Upgrade/Incremental/php/FiveForty.php(94): CRM_Core_DAO::executeQuery("\n ALTER TABLE `civicrm
_contribution_product`\n ADD CONSTRAIN...", (Array:0), TRUE, NULL, FALSE, FALSE)
#13 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Queue/Task.php(74): CRM_Upgrade_Incremental_php_FiveForty::addContributionProductFK(Object(CRM_Queue_
TaskContext))
#14 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Queue/Runner.php(201): CRM_Queue_Task->run(Object(CRM_Queue_TaskContext))
#15 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Queue/Page/AJAX.php(36): CRM_Queue_Runner->runNext(TRUE)
#16 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Queue/ErrorPolicy.php(89): CRM_Queue_Page_AJAX::{closure}()
#17 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Queue/Page/AJAX.php(38): CRM_Queue_ErrorPolicy->call(Object(Closure))
#18 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(279): CRM_Queue_Page_AJAX::runNext()
#19 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:13))
#20 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:5))
#21 /srv/www/wpcvlocal/public/wp-content/plugins/civicrm/civicrm.php(1178): CRM_Core_Invoke::invoke((Array:5))
#22 /srv/www/wpcvlocal/public/wp-includes/class-wp-hook.php(292): CiviCRM_For_WordPress->invoke("")
#23 /srv/www/wpcvlocal/public/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters("", (Array:1))
#24 /srv/www/wpcvlocal/public/wp-includes/plugin.php(484): WP_Hook->do_action((Array:1))
#25 /srv/www/wpcvlocal/public/wp-admin/admin.php(259): do_action("toplevel_page_CiviCRM")
#26 {main}