*/
/**
- * Upgrade logic for <?php echo $camelNumber; ?>
+ * Upgrade logic for the <?php echo $versionX = str_replace('alpha1', 'x', $versionNumber); ?> series.
+ *
+ * Each minor version in the series is handled by either a `<?php echo $versionX; ?>.mysql.tpl` file,
+ * or a function in this class named `upgrade_<?php echo str_replace('.', '_', $versionX); ?>`.
+ * If only a .tpl file exists for a version, it will be run automatically.
+ * If the function exists, it must explicitly add the 'runSql' task if there is a corresponding .mysql.tpl.
+ *
+ * This class may also implement `setPreUpgradeMessage()` and `setPreUpgradeMessage()` functions.
*/
class CRM_Upgrade_Incremental_php_<?php echo $camelNumber; ?> extends CRM_Upgrade_Incremental_Base {
/**
- * Compute any messages which should be displayed beforeupgrade.
+ * Upgrade step; adds tasks including 'runSql'.
*
- * Note: This function is called iteratively for each incremental upgrade step.
- * There must be a concrete step (eg 'X.Y.Z.mysql.tpl' or 'upgrade_X_Y_Z()').
- *
- * @param string $preUpgradeMessage
- * @param string $rev
- * a version number, e.g. '4.4.alpha1', '4.4.beta3', '4.4.0'.
- * @param null $currentVer
- */
- public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL): void {
- // Example: Generate a pre-upgrade message.
- // if ($rev == '5.12.34') {
- // $preUpgradeMessage .= '<p>' . ts('A new permission, "%1", has been added. This permission is now used to control access to the Manage Tags screen.', array(1 => ts('manage tags'))) . '</p>';
- // }
- }
-
- /**
- * Compute any messages which should be displayed after upgrade.
- *
- * Note: This function is called iteratively for each incremental upgrade step.
- * There must be a concrete step (eg 'X.Y.Z.mysql.tpl' or 'upgrade_X_Y_Z()').
- *
- * @param string $postUpgradeMessage
- * alterable.
* @param string $rev
- * an intermediate version; note that setPostUpgradeMessage is called repeatedly with different $revs.
+ * The version number matching this function name
*/
- public function setPostUpgradeMessage(&$postUpgradeMessage, $rev): void {
- // Example: Generate a post-upgrade message.
- // if ($rev == '5.12.34') {
- // $postUpgradeMessage .= '<br /><br />' . ts("By default, CiviCRM now disables the ability to import directly from SQL. To use this feature, you must explicitly grant permission 'import SQL datasource'.");
- // }
+ public function upgrade_<?php echo str_replace('.', '_', $versionNumber); ?>($rev): void {
+ $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
}
- /*
- * Important! All upgrade functions MUST add a 'runSql' task.
- * Uncomment and use the following template for a new upgrade version
- * (change the x in the function name):
- */
-
- // /**
- // * Upgrade function.
- // *
- // * @param string $rev
- // */
- // public function upgrade_5_0_x($rev): void {
- // $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
- // $this->addTask('Do the foo change', 'taskFoo', ...);
- // // Additional tasks here...
- // // Note: do not use ts() in the addTask description because it adds unnecessary strings to transifex.
- // // The above is an exception because 'Upgrade DB to %1: SQL' is generic & reusable.
- // }
-
- // public static function taskFoo(CRM_Queue_TaskContext $ctx, ...): bool {
- // return TRUE;
- // }
-
}