Unverified Commit b8585a11 authored by emilylange's avatar emilylange
Browse files

nixos/forgejo: work around permissions error on `postgresql_15`

From `postgresql_15`'s release notes:
> PostgreSQL 15 also revokes the CREATE permission from all users except
a database owner from the public (or default) schema.

https://www.postgresql.org/about/news/postgresql-15-released-2526/

This directly affects `services.postgresql.ensureUsers` in NixOS,
leading to
> permission denied for schema public

`postgresql_15` is now the default for stateVersion `23.11`/`unstable`.

So until this is resolved globally, we work around this issue.
parent a6629708
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -428,6 +428,17 @@ in
      ];
    };

    # Work around 'pq: permission denied for schema public' with postgres v15, until a
    # solution for `services.postgresql.ensureUsers` is found.
    # See https://github.com/NixOS/nixpkgs/issues/216989
    systemd.services.postgresql.postStart = lib.mkIf (
      usePostgresql
      && cfg.database.createDatabase
      && lib.strings.versionAtLeast config.services.postgresql.package.version "15.0"
    ) (lib.mkAfter ''
      $PSQL -tAc 'ALTER DATABASE "${cfg.database.name}" OWNER TO "${cfg.database.user}";'
    '');

    services.mysql = optionalAttrs (useMysql && cfg.database.createDatabase) {
      enable = mkDefault true;
      package = mkDefault pkgs.mariadb;