summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorErik Arvstedt <erik.arvstedt@gmail.com>2023-01-30 20:20:16 +0100
committerErik Arvstedt <erik.arvstedt@gmail.com>2023-01-31 14:43:36 +0100
commita7d112b30a36fd4f0500fed41c62249461624c98 (patch)
treefad03e9a2a96224a10fb60c0c27865110f4f8617 /nixos
parent4fc0f24120eec931c5c7ea95dcfad327563c048f (diff)
nixos/paperless: Reindex documents after updating to 1.12.x
This causes a reindex of all documents to allow for comments made before 1.12.x to be searchable. Also change the format of the version file to just include the version, not the whole store path. This simplifies version comparisons and causes migrations to run only when the version has changed. Co-Authored-By: Martin Weinelt <hexa@darmstadt.ccc.de>
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/misc/paperless.nix21
1 files changed, 19 insertions, 2 deletions
diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix
index 1dddd147ac09..667f16d98f82 100644
--- a/nixos/modules/services/misc/paperless.nix
+++ b/nixos/modules/services/misc/paperless.nix
@@ -226,9 +226,26 @@ in
# Auto-migrate on first run or if the package has changed
versionFile="${cfg.dataDir}/src-version"
- if [[ $(cat "$versionFile" 2>/dev/null) != ${pkg} ]]; then
+ version=$(cat "$versionFile" 2>/dev/null || echo 0)
+
+ if [[ $version != ${pkg.version} ]]; then
${pkg}/bin/paperless-ngx migrate
- echo ${pkg} > "$versionFile"
+
+ # Parse old version string format for backwards compatibility
+ version=$(echo "$version" | grep -ohP '[^-]+$')
+
+ versionLessThan() {
+ target=$1
+ [[ $({ echo "$version"; echo "$target"; } | sort -V | head -1) != "$target" ]]
+ }
+
+ if versionLessThan 1.12.0; then
+ # Reindex documents as mentioned in https://github.com/paperless-ngx/paperless-ngx/releases/tag/v1.12.1
+ echo "Reindexing documents, to allow searching old comments. Required after the 1.12.x upgrade."
+ ${pkg}/bin/paperless-ngx document_index reindex
+ fi
+
+ echo ${pkg.version} > "$versionFile"
fi
''
+ optionalString (cfg.passwordFile != null) ''