🧹 Remove the one-off Rails migration tool

What does this MR do and why?

The Rails import ran once, at the July cutover, and will not run again. Keeping the tool means keeping a workspace member, its tests, its metric keys and its CI matrix entry in step with every refactor for no return, and its mapper already drifted from the bot once (it wrote map pins latitude first, fixed on the data side in !729 (merged)). This removes the tool and everything that existed only for it:

  • tools/rails-migration/ and tests/rails-migration/, plus tests/bot/cli/test_console.py, which tested the tool's console helpers.
  • The workspace member in pyproject.toml and uv.lock, the COPY of its pyproject.toml in the four app Dockerfiles and the CI image, and the stub the CI image created for it.
  • Its entry in the import-isolation check, the test-suite matrix and the dependency-change path list in CI.
  • The throwaway heroku-postgres service in docker-compose.yaml, which only held the legacy dump.
  • The eight MIGRATION_* metric keys nothing else emitted.
  • Every mention in AGENTS.md, CLAUDE.md, the cli-conventions skill, the CLI test reference, the cli-expert agent and the project layout page.

Migration docstrings that describe imported data are left as they are: they document the rows, not the tool.

Screenshots or screen recordings

Not applicable.

How to set up and validate locally

  1. uv sync resolves without the member.
  2. uv run mb test tests/mb tests/monitoring tests/bot/cli passes.
  3. grep -ri rails outside libs/data/mitup_bot/migrations/versions finds nothing.

MR acceptance checklist

  • Any new or modified functionality is covered by tests: removal only; the tests that covered the tool go with it.
  • This modification has been tested in a local environment and proof has been presented and evaluated.
  • The documentation has been updated accordingly
  • The code in the MR has been validated (lint, format and type check clean; affected test folders pass; the full suite runs in CI)
  • If new strings have been added to messages, the source language has been updated: no strings.

Merge request reports

Loading
Loading