mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-25 22:33:43 +00:00
nixos/nextcloud: add nextcloud-update-db.service, nextcloud-cron isn't oneshot
This service performs operations that significantly increase the performance of Nextcloud, can take a while. These are designed however to not require maintenance mode and can be executed during normal operation[1]. Make nextcloud-cron a simple unit instead of oneshot: otherwise we risk that it'll be stopped by the startup timeout (oneshot executes ExecStart while "activating") which can be an issue for very long running tasks or if Nextcloud needs to catch up if one task was broken for a while. [1] https://docs.nextcloud.com/server/29/admin_manual/maintenance/upgrade.html#long-running-migration-steps
This commit is contained in:
parent
7e244f7281
commit
5ef467d6f5
@ -939,6 +939,7 @@ in {
|
||||
|
||||
in {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "nextcloud-update-db.service" ];
|
||||
before = [ "phpfpm-nextcloud.service" ];
|
||||
after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
|
||||
requires = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
|
||||
@ -997,7 +998,7 @@ in {
|
||||
after = [ "nextcloud-setup.service" ];
|
||||
environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Type = "exec";
|
||||
User = "nextcloud";
|
||||
ExecCondition = "${lib.getExe phpPackage} -f ${webroot}/occ status -e";
|
||||
ExecStart = "${lib.getExe phpPackage} -f ${webroot}/cron.php";
|
||||
@ -1013,6 +1014,20 @@ in {
|
||||
};
|
||||
startAt = cfg.autoUpdateApps.startAt;
|
||||
};
|
||||
nextcloud-update-db = {
|
||||
after = [ "nextcloud-setup.service" ];
|
||||
environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
|
||||
script = ''
|
||||
${occ}/bin/nextcloud-occ db:add-missing-columns
|
||||
${occ}/bin/nextcloud-occ db:add-missing-indices
|
||||
${occ}/bin/nextcloud-occ db:add-missing-primary-keys
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "exec";
|
||||
User = "nextcloud";
|
||||
ExecCondition = "${lib.getExe phpPackage} -f ${webroot}/occ status -e";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.phpfpm = {
|
||||
|
Loading…
Reference in New Issue
Block a user