<commit_before>---
stage: Enablement
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
---

# GitLab 15 specific changes **(FREE SELF)**

NOTE:
When upgrading to a new major version, remember to first [check for background migrations](https://docs.gitlab.com/ee/update/index.html#checking-for-background-migrations-before-upgrading).

## 15.0

### PostgreSQL version updates

In GitLab 15.0, PostgreSQL versions have been updated to v12.10 and v13.6
respectively. Because of underlying structural changes, the running PostgreSQL
process **_must_** be restarted before running database migrations. If automatic
restart is skipped, you must run the following command before
migrations are run:

```shell
# If using PostgreSQL
sudo gitlab-ctl restart postgresql

# If using Patroni for Database replication
sudo gitlab-ctl restart patroni
```

If PostgreSQL is not restarted, you might face
[errors related to loading libraries](../settings/database.md#could-not-load-library-plpgsqlso).

### Automatic restart of PostgreSQL service on version change

Starting with GitLab 15.0, `postgresql` and `geo-postgresql` services are
automatically restarted when the PostgreSQL version changes. Restarting
PostgreSQL services causes downtime due to the temporary unavailability of the
database for operations. While this restart is mandatory for proper functioning
of the Database services, you might want more control over when the PostgreSQL
is restarted. For that purpose, you can choose to skip the automatic restarts as
part of `gitlab-ctl reconfigure` and manually restart the services.
<commit_msg>Documentation: Add clarity to PostgreSQL version information<commit_after>---
stage: Enablement
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
---

# GitLab 15 specific changes **(FREE SELF)**

NOTE:
When upgrading to a new major version, remember to first [check for background migrations](https://docs.gitlab.com/ee/update/index.html#checking-for-background-migrations-before-upgrading).

## 15.0

### PostgreSQL version updates

In GitLab 15.0, [Omnibus GitLab ships with PostgreSQL versions](https://docs.gitlab.com/ee/administration/package_information/postgresql_versions.html) 12.10 for upgrades and 13.6 for fresh installs.
Because of underlying structural changes, the running PostgreSQL
process **_must_** be restarted when it is upgraded before running database migrations. If automatic
restart is skipped, you must run the following command before
migrations are run:

```shell
# If using PostgreSQL
sudo gitlab-ctl restart postgresql

# If using Patroni for Database replication
sudo gitlab-ctl restart patroni
```

If PostgreSQL is not restarted, you might face
[errors related to loading libraries](../settings/database.md#could-not-load-library-plpgsqlso).

### Automatic restart of PostgreSQL service on version change

Starting with GitLab 15.0, `postgresql` and `geo-postgresql` services are
automatically restarted when the PostgreSQL version changes. Restarting
PostgreSQL services causes downtime due to the temporary unavailability of the
database for operations. While this restart is mandatory for proper functioning
of the Database services, you might want more control over when the PostgreSQL
is restarted. For that purpose, you can choose to skip the automatic restarts as
part of `gitlab-ctl reconfigure` and manually restart the services.

{'fraction_non_alphanumeric': 0.06947823736144904, 'fraction_numerical': 0.009732360097323601, 'mean_word_length': 5.335616438356165, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 5, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '497688', 'n_tokens_mistral': 1008, 'n_tokens_neox': 945, 'n_words': 422}