New install of cronplus 2.1.2 will still execute extension database upgrade and trigger FATAL ERROR
New install of cronplus 2.1.2 will still execute extension database upgrade and trigger FATAL ERROR because the upgrade script is trying to add the cron column which already exists in the civicrm_job_scheduled table, added by the install.sql
Step to repeat:
- Use a CiviCRM site which has pending Extension Updates for other extensions.
- New install of cronplus 2.1.2
- Execute the Extension Updates after the installation.
- Fatal error raised during Extension Updates.
install.sql
CREATE TABLE IF NOT EXISTS `civicrm_job_scheduled` (
`job_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Job ID',
`cron` varchar(255) DEFAULT NULL,
PRIMARY KEY (`job_id`),
CONSTRAINT `civicrm_job_scheduled_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `civicrm_job` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Upgrader.php
public function upgrade_2000() {
$this->executeSqlFile('sql/update_2000/add_column_job_schedule.sql');
add_column_job_schedule.sql
ALTER TABLE `civicrm_job_scheduled`
ADD COLUMN `cron` varchar(255) DEFAULT NULL;
Causes fatal error
Jul 19 09:11:22 [error] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_info] => ALTER TABLE `civicrm_job_scheduled`
ADD COLUMN `cron` varchar(255) DEFAULT NULL [nativecode=1060 ** Duplicate column name 'cron']
[type] => DB_Error
[user_info] => ALTER TABLE `civicrm_job_scheduled`
ADD COLUMN `cron` varchar(255) DEFAULT NULL [nativecode=1060 ** Duplicate column name 'cron']
[to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="ALTER TABLE `civicrm_job_scheduled`
ADD COLUMN `cron` varchar(255) DEFAULT NULL [nativecode=1060 ** Duplicate column name 'cron']"]
)
Agileware Ref: CIVICRM-2015