fix(2meet-data-optimizer): keep a post row's status and date copies when the migration engine rebuilds it
- migrate_entity() (drift-check --fix, per-row backfill) REPLACEs the whole flat row and left out the post_status / post_date copies, so a rebuilt row had NULL status. One such row turns the status/date copy route off for the whole group: on dev36 a single row rebuilt by the stage-3 drift fix made the date-ordered price search 1.47 s instead of driving from the flat index - post rows now carry TMDO_Post_Status_Sync::insert_columns(); the bulk pivot backfill (ON DUPLICATE KEY UPDATE) was not affected - Verify: PostStatusSyncTest (existing and new rows keep their copies), integration 593, unit 704, phpcs, stan; dev36 post-status-sync + front-end - PR: PR-127 (found in 2.4 profiling)
This commit is contained in:
@@ -278,6 +278,15 @@ final class TMDO_Entity_Migration_Engine {
|
||||
}
|
||||
}
|
||||
|
||||
// REPLACE drops columns it is not given: keep a post row's status/date
|
||||
// copies, or one NULL row turns the copy route off for the group (2.4 PR-127).
|
||||
if ( 'post' === $entity_type && class_exists( 'TMDO_Post_Status_Sync' ) ) {
|
||||
foreach ( TMDO_Post_Status_Sync::insert_columns( $entity_id, $group_name ) as $col => $value ) {
|
||||
$data[ $col ] = $value;
|
||||
$formats[] = '%s';
|
||||
}
|
||||
}
|
||||
|
||||
if ( $dry_run ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user