Communicate that EE migrations need to be added in CE for the single-codebase effort
With https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26940 being ready for merge, we need to ensure that any new migrations added to the Rails codebase are present in CE, regardless of they being used in EE. This will allow us to
Announcing that no new EE migrations can be added
As part of the work towards a single codebase, we need to backport the EE schema and its migrations to CE. To do this, we are taking the following steps:
-
In https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/26940 we are setting up migrations to backport all schema changes from EE to CE. EE migrations older than this migration don't need to be backported, and will be removed.
-
EE migrations added after this migration can stay, but need to be moved to the
db/migrate
directory in CE. -
Once all of this is done, we will remove
ee/db/migrate
entirely.
To make this possible, developers will have to slightly change their workflow when adding EE migrations (starting today), until the above work is done. This workflow requires the following steps:
-
EE specific migrations must be submitted to CE using a CE merge request.
-
EE specific migrations that migrate EE columns or data must make sure these exist, and not do anything when they don't. For example, when renaming an existing EE column the migration must first check if the column exists. This ensures the migrations don't fail on CE.
-
EE MRs that depend on these changes should also include the migrations. This can be done by just cherry-picking the appropriate commits into the EE MR.
If any developers have any questions or need help, they can ask @yorickpeterse
in their merge requests, via Slack in #wg_single_codebase and in issue https://gitlab.com/gitlab-org/gitlab-ee/issues/11252.
Communication channels
@marin will drive the communication part:
-
Leave a message in #development, #frontend, #backend channels -
Send an email to the engineering mailing list -
Leave a message in each team's meeting agenda, pointing back to this issue for questions/comments -
OPTIONAL setup an AMA session if async questions are not sufficient