Directory db/rdbms/migration contains all migrations which are supported by ConTest. These consist both in .sql
and pure go migrations as explained in the documentation for the migration tool. Please refer to the documentation of the tool to understand how the migrations are applied. This document explains each supported migration.
Every migration is associated to a version number, which eventually will represent the db schema version.
The add_extended_descriptor migrations adds extended_descriptor
column. This was part of #118, which fixed an issue in handling job descriptor and test steps descriptors. extended_descriptor
field is introduced in the jobs table to track the initial job descriptor submitted by the user, and the resolved test descriptors (which are obtained by the test fetcher at runtime, just after submitting the job) in a single data structure. Before, they would be part of the Request
object, populated at different times of the lifecycle of the job. This also resulted in an additional bug when rebuilding status of a job: we would fetch test descriptors from backend, instead of using the object serialized at event submission time.
The migrate_descriptor_to_extended_descrptor migration backfills existing entries in the jobs
table and populates them with an extended_descriptor
. After #118, ConTest has a dependency over the extended_descriptor
being populated and it won't be able to re-build status for any job which hasn't had the extended_descriptor
backfilled.
The add_jobs_state_column migration adds the state
column to the jobs table to keep track of the job state without making queries against the framework_events table. Migration script backfills the column for existing jobs and server maintains the column going forward.
The add_job_tags_table migration creates the job_tags
table that maintains the relationship between job id and job tags to facilitate efficient lookups of jobs by tag(s). Migration script backfills the column for existing jobs and server maintains the column going forward.
TBD
The add_indices migration creates the indices required to cover SELECT requests issued by JobRunner
.