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]); +});