@@ -117,13 +117,14 @@ the following table) as these were used for development and testing:
| 10.0 | 9.6 |
| 13.0 | 11 |
You must also ensure the following extensions are [loaded into every
GitLab database](postgresql_extensions.html):
You must also ensure the following extensions are loaded into every
GitLab database. [Read more about this requirement, and troubleshooting](postgresql_extensions.md).
| Extension | Minimum GitLab version |
| ------------ | ---------------------- |
| `pg_trgm` | 8.6 |
| `btree_gist` | 13.1 |
| `plpgsql` | 11.7 |
NOTE:
Support for [PostgreSQL 9.6 and 10 was removed in GitLab 13.0](https://about.gitlab.com/releases/2020/05/22/gitlab-13-0-released/#postgresql-11-is-now-the-minimum-required-version-to-install-gitlab) so that GitLab can benefit from PostgreSQL 11 improvements, such as partitioning. For the schedule of transitioning to PostgreSQL 12, see [the related epic](https://gitlab.com/groups/gitlab-org/-/epics/2184).
...
...
@@ -136,6 +137,28 @@ test based on those. We try to be compatible with most external (not managed by
Omnibus GitLab) databases (for example, [AWS Relational Database Service (RDS)](https://aws.amazon.com/rds/)),
but we can't guarantee compatibility.
#### Gitaly Cluster database requirements
[Read more in the Gitaly Cluster documentation](../administration/gitaly/praefect.md).
#### Exclusive use of GitLab databases
Databases created or used for GitLab, Geo, Gitaly Cluster or other components
should be for the exclusive use of GitLab. Do not make direct changes to the database,
schemas, users or other properties except when following procedures in the GitLab documentation
or following the directions of GitLab Support or other GitLab engineers.
- The main GitLab application currently uses three schemas: the default `public` schema, plus it
will automatically create `gitlab_partitions_static` and `gitlab_partitions_dynamic`.
No other schemas should be manually created.
- GitLab may create new schemas as part of Rails database migrations. This will happen when performing
a GitLab upgrade. The GitLab database account requires access to do this.
- GitLab creates and modifies tables during the upgrade process, and also as part
of normal operations to manage partitioned tables.
- You should not modify the GitLab schema, for example adding triggers, modifying tables.
Database migrations are tested against the schema definition in the GitLab code base. GitLab version
upgrades may fail if the schema is modified.
## Puma settings
The recommended settings for Puma are determined by the infrastructure on which it's running.