From 45d2b8b536f8065544268f11a63376c5f19f00cc Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 19 Jun 2024 11:16:02 +0200 Subject: [PATCH] nixos/nextcloud: deprecated dbtableprefix Closes #320381 Installation with a custom dbtableprefix is not allowed anymore for a while[1] and we shouldn't advertise it as such. The option is deprecated for now since I'm not sure if there are some weird corner-cases where removing the option directly would break existing installations from before <20 with a custom dbtableprefix. The migration-path for such a case is as follows: * Check if /var/lib/nextcloud/config/config.php has the correct dbtableprefix set and if not, take care of it. * Remove `dbtableprefix` from the NixOS configuration. It's effectively state anyways. After a bit of time to switch (perhaps after the next release branchoff), the option can be removed. [1] https://github.com/nextcloud/server/issues/24836 --- nixos/modules/services/web-apps/nextcloud.nix | 15 ++++++++++++++- nixos/tests/nextcloud/basic.nix | 1 - 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index d7eb2c6cb734..2bf993cffec3 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -446,7 +446,13 @@ in { dbtableprefix = mkOption { type = types.nullOr types.str; default = null; - description = "Table prefix in Nextcloud's database."; + description = '' + Table prefix in Nextcloud's database. + + __Note:__ since Nextcloud 20 it's not an option anymore to create a database + schema with a custom table prefix. This option only exists for backwards compatibility + with installations that were originally provisioned with Nextcloud <20. + ''; }; adminuser = mkOption { type = types.str; @@ -826,6 +832,13 @@ in { Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. Please migrate your configuration to config.services.nextcloud.poolSettings. '') + ++ (optional (cfg.config.dbtableprefix != null) '' + Using `services.nextcloud.config.dbtableprefix` is deprecated. Fresh installations with this + option set are not allowed anymore since v20. + + If you have an existing installation with a custom table prefix, make sure it is + set correctly in `config.php` and remove the option from your NixOS config. + '') ++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11")) ++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05")) ++ (optional (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11")) diff --git a/nixos/tests/nextcloud/basic.nix b/nixos/tests/nextcloud/basic.nix index 2a32f2b4d199..bea08e323110 100644 --- a/nixos/tests/nextcloud/basic.nix +++ b/nixos/tests/nextcloud/basic.nix @@ -38,7 +38,6 @@ runTest ({ config, ... }: { services.nextcloud = { enable = true; datadir = "/var/lib/nextcloud-data"; - config.dbtableprefix = "nixos_"; autoUpdateApps = { enable = true; startAt = "20:00";