Add Rake Task to Migrate Merge Request Diff Data from External Storage to Database
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=508434)
</details>
<!--IssueSummary end-->
### Release notes
Proposing introducing a rake task to facilitate the migration of merge request diff data stored externally back to database storage. This feature will help administrators manage data storage, providing the flexibility to revert on disk storage of merge request diff data if required.
### Problem to solve
Currently, GitLab does not provide a straightforward mechanism for administrators to migrate merge request diff data from external storage back to the database. This limitation poses challenges in scenarios where administrators need to reverse previous decisions to store the data externally and the use of alternative in-database storage is not suitable.
Issue raised in support ticket: https://gitlab.zendesk.com/agent/tickets/585579
### Proposal
Introduce a new rake task, that can:
- The task should identify merge request data stored in external storage.
- Migrate this data back into the GitLab database.
- Administrators should have the ability to perform a dry run to preview the migration impact without making changes.
- Show detailed logs and progress updates during the process.
### Intended users
- [Sidney (Systems Administrator)](https://handbook.gitlab.com/handbook/product/personas/#sidney-systems-administrator)
- [Isaac (Infrastructure Engineer)](https://handbook.gitlab.com/handbook/product/personas/#isaac-infrastructure-security-engineer)
### Feature Usage Metrics
<!-- How are you going to track usage of this feature? Think about user behaviour and their interaction with the product. What indicates someone is getting value from it?
Explore (../../doc/development/internal_analytics/internal_event_instrumentation/quick_start.md) for a guide.
-->
### Does this feature require an audit event?
<!--- Checkout these docs to know more
https://docs.gitlab.com/ee/development/audit_event_guide/#what-are-audit-events
https://docs.gitlab.com/ee/administration/audit_events.html
--->
<!-- Label reminders
Make sure to add the appropriate labels for the product stage and/or group (e.g ~"devops::plan") if known and add a comment tagging the appropriate Product Manager.
Use the following resources to find the appropriate labels:
- Use only one tier label choosing the lowest tier this is intended for
- https://gitlab.com/gitlab-org/gitlab/-/labels
- https://about.gitlab.com/handbook/product/categories/features/
Examples:
/label ~group:: ~section:: ~Category:
/label ~"GitLab Free" ~"GitLab Premium" ~"GitLab Ultimate"
-->
issue