FiveFiftyOne - Enable snapshots for data modified data
authorTim Otten <totten@civicrm.org>
Tue, 14 Jun 2022 02:06:05 +0000 (19:06 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 14 Jun 2022 02:06:05 +0000 (19:06 -0700)
Before
------

The 5.51.alpha upgrade modifies a some data-structures (`civicrm_mapping_*`, `civicrm_queue`),
but it doesn't take any snapshots.

After
-----

It does snapshots.

Comments
--------

Both tables should generally be quite small.

Strictly, the `civicrm_mapping_*` updates are more in-place modifications,
so that's more important.  The `civicrm_queue` changes are only adding new
columns.  But the table is so small - it doesn't hurt.

I suppose one could argue that these particular fields aren't likely to have
problems - but it's important to get in the habit of enabling snapshots so
that we have them when they do matter.

CRM/Upgrade/Incremental/php/FiveFiftyOne.php

index f8ae125bde981f2e4cff4d0d52b4708b1b3b3b35..b0aa087a8ba9a38249e9189e2eb35e032ff3a309 100644 (file)
@@ -30,6 +30,10 @@ class CRM_Upgrade_Incremental_php_FiveFiftyOne extends CRM_Upgrade_Incremental_B
    *   The version number matching this function name
    */
   public function upgrade_5_51_alpha1($rev): void {
+    $this->addSnapshotTask('mappings', CRM_Utils_SQL_Select::from('civicrm_mapping'));
+    $this->addSnapshotTask('fields', CRM_Utils_SQL_Select::from('civicrm_mapping_field'));
+    $this->addSnapshotTask('queues', CRM_Utils_SQL_Select::from('civicrm_queue'));
+
     $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
     $this->addTask(ts('Convert import mappings to use names'), 'convertMappingFieldLabelsToNames', $rev);
     $this->addTask('Add column "civicrm_queue.status"', 'addColumn', 'civicrm_queue',