Commit 551b9e10 authored by Robert Speicher's avatar Robert Speicher

Merge branch 'bw-tweak-migration-style-guide-docs' into 'master'

make a little more obvious what operations might need downtime or enhanced migration techniques

See merge request gitlab-org/gitlab-ce!17927
parents e3bf4931 7b0e7bcf
...@@ -23,10 +23,6 @@ When downtime is necessary the migration has to be approved by: ...@@ -23,10 +23,6 @@ When downtime is necessary the migration has to be approved by:
An up-to-date list of people holding these titles can be found at An up-to-date list of people holding these titles can be found at
<https://about.gitlab.com/team/>. <https://about.gitlab.com/team/>.
The document ["What Requires Downtime?"](what_requires_downtime.md) specifies
various database operations, whether they require downtime and how to
work around that whenever possible.
When writing your migrations, also consider that databases might have stale data When writing your migrations, also consider that databases might have stale data
or inconsistencies and guard for that. Try to make as few assumptions as or inconsistencies and guard for that. Try to make as few assumptions as
possible about the state of the database. possible about the state of the database.
...@@ -41,6 +37,18 @@ Migrations that make changes to the database schema (e.g. adding a column) can ...@@ -41,6 +37,18 @@ Migrations that make changes to the database schema (e.g. adding a column) can
only be added in the monthly release, patch releases may only contain data only be added in the monthly release, patch releases may only contain data
migrations _unless_ schema changes are absolutely required to solve a problem. migrations _unless_ schema changes are absolutely required to solve a problem.
## What Requires Downtime?
The document ["What Requires Downtime?"](what_requires_downtime.md) specifies
various database operations, such as
- [adding, dropping, and renaming columns](what_requires_downtime.md#adding-columns)
- [changing column constraints and types](what_requires_downtime.md#changing-column-constraints)
- [adding and dropping indexes, tables, and foreign keys](what_requires_downtime.md#adding-indexes)
and whether they require downtime and how to work around that whenever possible.
## Downtime Tagging ## Downtime Tagging
Every migration must specify if it requires downtime or not, and if it should Every migration must specify if it requires downtime or not, and if it should
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment