Add partition pruning to pipeline relations not in the CI database
Follow-up from [#593701 (comment 3328607911)](https://gitlab.com/gitlab-org/gitlab/-/work_items/593701#note_3328607911).
Apply partition pruning to pipeline associations on models that are not in the CI database, mirroring the approach already used by `MergeRequest#head_pipeline` (`app/models/merge_request.rb:946-950`, !230857).
## Reference (already implemented)
| Model | File | Association | FK |
|---|---|---|---|
| `MergeRequest` | `app/models/merge_request.rb:119` | `head_pipeline` | `head_pipeline_id` |
## Main DB models (`< ApplicationRecord`) — need the fix
| # | Model | File | Association | FK column |
|---|---|---|---|---|
| 1 | `MergeRequest::Metrics` | `app/models/merge_request/metrics.rb:5` | `pipeline` | `pipeline_id` |
| 2 | `Packages::BuildInfo` | `app/models/packages/build_info.rb:5` | `pipeline` | `pipeline_id` |
| 3 | `Packages::PackageFileBuildInfo` | `app/models/packages/package_file_build_info.rb:5` | `pipeline` | `pipeline_id` |
| 4 | `Environments::Job` | `app/models/environments/job.rb:9` | `pipeline` | `ci_pipeline_id` |
| 5 | `MergeTrains::Car` | `ee/app/models/merge_trains/car.rb:18` | `pipeline` | `pipeline_id` |
| 6 | `Security::PolicySchedulePipeline` | `ee/app/models/security/policy_schedule_pipeline.rb:8` | `pipeline` | `pipeline_id` |
| 7 | `Security::ScheduledPipelineExecutionPolicyTestRun` | `ee/app/models/security/scheduled_pipeline_execution_policy_test_run.rb:10` | `pipeline` | `pipeline_id` |
## Sec DB models (`< SecApplicationRecord`) — need the fix
| # | Model | File | Association | FK column |
|---|---|---|---|---|
| 8 | `Vulnerabilities::Statistic` | `ee/app/models/vulnerabilities/statistic.rb:30` | `pipeline` | `latest_pipeline_id` |
| 9 | `Vulnerabilities::Finding` | `ee/app/models/vulnerabilities/finding.rb:111` | `initial_finding_pipeline` | `initial_pipeline_id` |
| 10 | `Vulnerabilities::Finding` | `ee/app/models/vulnerabilities/finding.rb:112` | `latest_finding_pipeline` | `latest_pipeline_id` |
| 11 | `Vulnerabilities::PartialScan` | `ee/app/models/vulnerabilities/partial_scan.rb:15` | `pipeline` | `pipeline_id` |
| 12 | `Vulnerabilities::Feedback` | `ee/app/models/vulnerabilities/feedback.rb:15` | `pipeline` | `pipeline_id` |
| 13 | `Security::Scan` | `ee/app/models/security/scan.rb:15` | `pipeline` | `pipeline_id` |
| 14 | `Sbom::Occurrence` | `ee/app/models/sbom/occurrence.rb:20` | `pipeline` | `pipeline_id` |
| 15 | `Sbom::OccurrenceRef` | `ee/app/models/sbom/occurrence_ref.rb:22` | `pipeline` | `pipeline_id` |
| 16 | `Dependencies::DependencyListExport` | `ee/app/models/dependencies/dependency_list_export.rb:15` | `pipeline` | `pipeline_id` |
| 17 | `Dast::ProfilesPipeline` | `ee/app/models/dast/profiles_pipeline.rb:9` | `ci_pipeline` | `ci_pipeline_id` |
| 18 | `Dast::PreScanVerification` | `ee/app/models/dast/pre_scan_verification.rb:7` | `ci_pipeline` | `ci_pipeline_id` |
## Summary
- **18 associations** across **17 distinct models** require the override.
- 7 in the Main DB, 11 in the Sec DB.
- `Vulnerabilities::Finding` needs two overrides (initial + latest).
issue