@@ -21,7 +21,12 @@ To enable PostgreSQL, add the following to your {file}`configuration.nix`:
|
|||||||
services.postgresql.package = pkgs.postgresql_15;
|
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
|
After running {command}`nixos-rebuild`, you can verify
|
||||||
|
|||||||
@@ -120,8 +120,22 @@ in
|
|||||||
|
|
||||||
enableJIT = mkEnableOption "JIT support";
|
enableJIT = mkEnableOption "JIT support";
|
||||||
|
|
||||||
package = mkPackageOption pkgs "postgresql" {
|
package = mkOption {
|
||||||
example = "postgresql_15";
|
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 {
|
finalPackage = mkOption {
|
||||||
@@ -656,6 +670,7 @@ in
|
|||||||
See also https://endoflife.date/postgresql
|
See also https://endoflife.date/postgresql
|
||||||
'';
|
'';
|
||||||
base =
|
base =
|
||||||
|
# XXX Don't forget to keep `defaultText` of `services.postgresql.package` up to date!
|
||||||
if versionAtLeast config.system.stateVersion "24.11" then
|
if versionAtLeast config.system.stateVersion "24.11" then
|
||||||
pkgs.postgresql_16
|
pkgs.postgresql_16
|
||||||
else if versionAtLeast config.system.stateVersion "23.11" then
|
else if versionAtLeast config.system.stateVersion "23.11" then
|
||||||
|
|||||||
Reference in New Issue
Block a user