Create BBM to migrate ci_builds_metadata into new destinations
This issue includes also the BBM info from #555430 (closed).
Problem
While new data is being stored and queried from ci_builds and ci_job_prototypes we still have existing data stored in ci_builds_metadata that requires to be migrated.
Until we fully migrate this data into their new home in ci_builds and ci_job_prototypes respectively, we cannot delete code in Ci::Metadatable that references Ci::BuildMetadata model.
Sub-problem 2 (artifacts:expose_as)
options => artifacts:expose_as is needed long term for the MR widgets exposing artifacts and it's used when has_exposed_artfacts: true
This should be considered intrinsic data because it's used in MR widgets to display artifacts.
With #549079 (closed) we will have started writing intrinsic artifacts data to the columns exposed_as and exposed_paths in p_ci_job_artifacts. Also the logic to read from either the old or new data sources should be in place.
Proposal
Migrate all the data away from ci_builds_metadata and into ci_job_prototypes, ci_builds and the new association table for job<->environments.
You will need to work closely with the Database Team (e.g. @morefice).
Sub-proposal 2 (artifacts:expose_as)
In this issue we now migrate the existing intrinsic artifacts data from ci_build_metadata (or ci_job_definitions, depending on the timing) to p_ci_job_artifacts.
After this is migration is complete, we can update the code to only read from the new source.
Note: We should consider running pg_repack on p_ci_job_artifacts after the migration. See the usage stats of "exposed artifacts" here: #550223 (comment 2604368410).
Sub-proposal 3 (execution_config and tag_list)
We need to include execution_config and tag_list in the ci_job_definitions migration when doing a pass over ci_builds.