From 02827d1d710cd55eb9d06c6a0cab79b9052021c6 Mon Sep 17 00:00:00 2001 From: Pauline Vos Date: Tue, 3 Nov 2026 15:13:39 +0000 Subject: [PATCH] fix: remove broad Laravel headline for backfill Amp-Thread-ID: https://ampcode.com/threads/T-01a1a1ef-1f1a-75ae-9299-86d7077f0da8 --- ...6_11_03_150501_remove_laravel_headline.php | 20 ++++++++++++ .../Feature/LaravelHeadlineMigrationTest.php | 32 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 database/migrations/2026_11_03_150501_remove_laravel_headline.php create mode 100644 tests/Feature/LaravelHeadlineMigrationTest.php diff --git a/database/migrations/2026_11_03_150501_remove_laravel_headline.php b/database/migrations/2026_11_03_150501_remove_laravel_headline.php new file mode 100644 index 000000000..2fe1b69c3 --- /dev/null +++ b/database/migrations/2026_11_03_150501_remove_laravel_headline.php @@ -0,0 +1,20 @@ +where('name', 'Laravel')->select('id'); + + DB::table('commits')->whereIn('id', DB::table('commit_headline') + ->whereIn('headline_id', $headlines)->select('commit_id')) + ->update(['headlines_classified_at' => null]); + + DB::table('headlines')->where('name', 'Laravel')->delete(); + } +}; diff --git a/tests/Feature/LaravelHeadlineMigrationTest.php b/tests/Feature/LaravelHeadlineMigrationTest.php new file mode 100644 index 000000000..5f2cf8833 --- /dev/null +++ b/tests/Feature/LaravelHeadlineMigrationTest.php @@ -0,0 +1,32 @@ +create(['name' => 'Laravel']); + $specific = Headline::factory()->create(['name' => 'Laravel AI SDK release']); + $affected = Commit::factory()->hasAttached($laravel)->create(['headlines_classified_at' => now()]); + $shared = Commit::factory()->hasAttached($laravel)->hasAttached($specific)->create(['headlines_classified_at' => now()]); + $unaffected = Commit::factory()->hasAttached($specific)->create(['headlines_classified_at' => now()]); + + $migration = require database_path('migrations/2026_11_03_150501_remove_laravel_headline.php'); + $migration->up(); + $migration->up(); + + assertModelMissing($laravel); + assertModelExists($specific); + assertDatabaseMissing('commit_headline', ['headline_id' => $laravel->id]); + assertDatabaseHas('commits', ['id' => $affected->id, 'headlines_classified_at' => null]); + assertDatabaseHas('commits', ['id' => $shared->id, 'headlines_classified_at' => null]); + assertDatabaseHas('commits', ['id' => $unaffected->id, 'headlines_classified_at' => $unaffected->headlines_classified_at]); + assertDatabaseHas('commit_headline', ['commit_id' => $shared->id, 'headline_id' => $specific->id]); + assertDatabaseHas('commit_headline', ['commit_id' => $unaffected->id, 'headline_id' => $specific->id]); +});