nixos/odoo: set data_dir explicitly

Don't hide the data is a private sub-folder.

Before:
* /var/lib/private/odoo/.local/share/Odoo/
After:
* /var/lib/private/odoo/data
This commit is contained in:
zimbatm
2024-07-16 17:57:37 +02:00
parent c570314635
commit d11a54cb2f

View File

@@ -86,6 +86,7 @@ in
};
services.odoo.settings.options = {
data_dir = "/var/lib/private/odoo/data";
proxy_mode = cfg.domain != null;
} // (lib.optionalAttrs (cfg.addons != []) {
addons_path = concatMapStringsSep "," escapeShellArg cfg.addons;
@@ -108,16 +109,33 @@ in
serviceConfig = {
ExecStart = "${cfg.package}/bin/odoo";
ExecStartPre = pkgs.writeShellScript "odoo-start-pre.sh" (
''
set -euo pipefail
cd "$STATE_DIRECTORY"
# Auto-migrate old deployments
if [[ -d .local/share/Odoo ]]; then
echo "pre-start: migrating state directory from $STATE_DIRECTORY/.local/share/Odoo to $STATE_DIRECTORY/data"
mv .local/share/Odoo ./data
rmdir .local/share
rmdir .local
fi
''
+ (lib.optionalString cfg.autoInit ''
echo "pre-start: auto-init"
${cfg.package}/bin/odoo --init=INIT --database=odoo --db_user=odoo --stop-after-init
'')
+ "echo pre-start: OK"
);
DynamicUser = true;
User = "odoo";
StateDirectory = "odoo";
Environment = [
"HOME=%S/odoo"
"ODOO_RC=${cfgFile}"
];
} // (lib.optionalAttrs cfg.autoInit {
ExecStartPre = "${cfg.package}/bin/odoo --init=INIT --database=odoo --db_user=odoo --stop-after-init";
});
};
};
services.postgresql = {