fix(2meet-data-optimizer): upgrade existing flat tables from WP-CLI or WP-Cron only
- a changed group definition no longer runs dbDelta on an existing table inside a web request (seconds to minutes on a large table, and every concurrent request tried it): the group is recorded in tmdo_schema_deferred and tmdo_ensure_group_indexes is scheduled, whose request upgrades it - meanwhile the group stays native: Hook Bus field lookups return no field and the router treats it as drifting; afterwards a drift fix (tmdo_drift_resync) rebuilds the writes that skipped the flat table - new tables are still created at once; aeav_only upgrades at once (the flat table is the only copy); doctor lists deferred groups - Verify: SchemaUpgradeDeferralTest, Hook Bus and router tests, integration 582, unit 701, phpcs, stan; dev36 live cycle in the 2.3 acceptance - PR: PR-107
This commit is contained in:
@@ -90,6 +90,17 @@ class PostQueryRouterFoundRowsTest extends TestCase {
|
||||
return array( $router, $query, $request );
|
||||
}
|
||||
|
||||
public function test_a_group_waiting_for_its_table_upgrade_is_not_routed(): void {
|
||||
$mode = new ReflectionProperty( WPDO_Mode_Manager::class, 'cache' );
|
||||
$mode->setAccessible( true );
|
||||
$mode->setValue( null, array( 'post' => 'shadow_read', 'user' => 'disabled', 'term' => 'disabled', 'comment' => 'disabled' ) );
|
||||
update_option( TMDO_Schema_Manager::DEFERRED_OPTION, array( 'post/fr_core' => time() ) );
|
||||
|
||||
list( , $query ) = $this->routed();
|
||||
|
||||
$this->assertEmpty( $query->get( 'wpdo_post_clauses' ), 'kept native' );
|
||||
}
|
||||
|
||||
public function test_routed_request_drops_sql_calc_found_rows(): void {
|
||||
list( $router, $query, $request ) = $this->routed();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user