mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
# Which Problems Are Solved When starting Zitadel with Postgres version 18, setup fails with the following error: `level=error msg="migration failed" caller=".../cmd/setup/setup.go:373" code=0A000 detail= error="ERROR: partitioned tables cannot be unlogged (SQLSTATE 0A000)" hint= message="partitioned tables cannot be unlogged" name=34_add_cache_schema severity=ERROR` # How the Problems Are Solved - Modify setup step 34 to ensure compatibility with PostgreSQL 18 by changing the creation of the partitioned tables to`LOGGED` tables but keep the partitions `UNLOGGED`. - Added an additional setup step which alters the table persistence of the partitioned tables to `LOGGED`. # Additional Changes - Bumped Postgres compatibility to version 18 in docs. - Ensure default partitions for cache tables ## Additional Context - closes https://github.com/zitadel/zitadel/issues/10712 - backport to v4 - migration from PostgreSQL version 17 to 18 was verified using `pg_dumpall` and restoring the created backup file - and new setups using PostgreSQL version 18 directly --------- Co-authored-by: Copilot <[email protected]>
57 lines
1.6 KiB
Plaintext
57 lines
1.6 KiB
Plaintext
## ZITADEL with Postgres
|
|
|
|
PostgreSQL is the default database for ZITADEL due to its reliability, robustness, and adherence to SQL standards. It is well-suited for handling the complex data requirements of an identity management system.
|
|
|
|
If you are using Zitadel v2 and want to use a PostgreSQL database, you can [overwrite the default configuration](/self-hosting/manage/configure/configure).
|
|
|
|
Currently, versions 14 to 18 are supported.
|
|
|
|
Postgres can be configured as follows:
|
|
```yaml
|
|
Database:
|
|
postgres:
|
|
Host: localhost
|
|
Port: 5432
|
|
Database: zitadel
|
|
AwaitInitialConn: 5m
|
|
MaxOpenConns: 15
|
|
MaxIdleConns: 10
|
|
MaxConnLifetime: 1h
|
|
MaxConnIdleTime: 5m
|
|
Options:
|
|
User:
|
|
Username: zitadel
|
|
Password: zitadel
|
|
SSL:
|
|
Mode: disable
|
|
RootCert:
|
|
Cert:
|
|
Key:
|
|
Admin:
|
|
Username: postgres
|
|
Password: postgres
|
|
SSL:
|
|
Mode: disable
|
|
RootCert:
|
|
Cert:
|
|
Key:
|
|
```
|
|
|
|
The admin user is only needed for the installation step but can also be avoided
|
|
by preparing the necessary requirements:
|
|
|
|
* the zitadel user
|
|
* the zitadel database
|
|
* granting required permissions to the zitadel user
|
|
|
|
```sql
|
|
CREATE ROLE zitadel LOGIN;
|
|
CREATE DATABASE zitadel;
|
|
GRANT CONNECT, CREATE ON DATABASE zitadel TO zitadel;
|
|
```
|
|
|
|
Don't forget to adjust `pg_hba.conf` and set a password for the zitadel user.
|
|
|
|
With the setup done, follow the [phases guide](/self-hosting/manage/updating_scaling#separating-init-and-setup-from-the-runtime)
|
|
to run the init and then setup phase to get all necessary tables and data set up.
|