The goal of this task is to define all of the steps and code required for both production and open source release of a database change which adds a column to an existing table, populates the new column with data from other columns and also adds code to the recording function that adds new records which now include the new columns data. In this case, we are adding namespace info to an existing table as a separate column in the Linter table.
The Linter table is used for a variety of reports and allows results record sets to be filtered based on a number of criteria including namespace. The current Linter table does not contain a separate column for each records namespace component of the pages title and thus selects cannot reduce the result set based on that criteria and have to loop through a much larger record set to find those records with the appropriate namespace.
The process of making this type of database change requires a DBA and a developer to cooperate and coordinate their activities and understand the time it takes for some operations to complete and propagate, and other issues such as the ability roll back, UI and new code dependencies and dual mode operation based on feature flag enablement and other minor details. It is hoped this task will touch on and provide a complete guide to developers wishing to accomplish this type of comprehensive task