@@ -21,7 +21,12 @@ To enable PostgreSQL, add the following to your {file}`configuration.nix`:
|
||||
services.postgresql.package = pkgs.postgresql_15;
|
||||
}
|
||||
```
|
||||
Note that you are required to specify the desired version of PostgreSQL (e.g. `pkgs.postgresql_15`). Since upgrading your PostgreSQL version requires a database dump and reload (see below), NixOS cannot provide a default value for [](#opt-services.postgresql.package) such as the most recent release of PostgreSQL.
|
||||
|
||||
The default PostgreSQL version is approximately the latest major version available on the NixOS release
|
||||
matching your [`system.stateVersion`](#opt-system.stateVersion).
|
||||
This is because PostgreSQL upgrades require a manual migration process (see below).
|
||||
Hence, upgrades must happen by setting [`services.postgresql.package`](#opt-services.postgresql.package)
|
||||
explicitly.
|
||||
|
||||
<!--
|
||||
After running {command}`nixos-rebuild`, you can verify
|
||||
|
||||
@@ -120,8 +120,22 @@ in
|
||||
|
||||
enableJIT = mkEnableOption "JIT support";
|
||||
|
||||
package = mkPackageOption pkgs "postgresql" {
|
||||
example = "postgresql_15";
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
example = literalExpression "pkgs.postgresql_15";
|
||||
defaultText = literalExpression ''
|
||||
if versionAtLeast config.system.stateVersion "24.11" then
|
||||
pkgs.postgresql_16
|
||||
else if versionAtLeast config.system.stateVersion "23.11" then
|
||||
pkgs.postgresql_15
|
||||
else if versionAtLeast config.system.stateVersion "22.05" then
|
||||
pkgs.postgresql_14
|
||||
else
|
||||
pkgs.postgresql_13
|
||||
'';
|
||||
description = ''
|
||||
The package being used by postgresql.
|
||||
'';
|
||||
};
|
||||
|
||||
finalPackage = mkOption {
|
||||
@@ -656,6 +670,7 @@ in
|
||||
See also https://endoflife.date/postgresql
|
||||
'';
|
||||
base =
|
||||
# XXX Don't forget to keep `defaultText` of `services.postgresql.package` up to date!
|
||||
if versionAtLeast config.system.stateVersion "24.11" then
|
||||
pkgs.postgresql_16
|
||||
else if versionAtLeast config.system.stateVersion "23.11" then
|
||||
|
||||
Reference in New Issue
Block a user