Skip to content

don't set data_directory in the config by default #1576

Open
@evgeni

Description

@evgeni

Describe the Bug

Today, we always set data_directory = … in postgresql.conf via

postgresql::server::config_entry { "data_directory_for_instance_${name}":
key => 'data_directory',
value => $datadir,
}

However we also set it in the systemd override:

content => epp('postgresql/systemd-override.conf.epp', {
port => $port,
datadir => $datadir,
extra_systemd_config => $extra_systemd_config,
}
),

Environment=PGDATA=<%= $datadir %>

And pass it when calling initdb:

$datadir_parameter = "--pgdata '${datadir}'"

The problem is that setting data_directory in the config actually overrides the -D parameter on the CLI and the PGDATA environment variable, as can be seen in e.g. https://bugzilla.redhat.com/show_bug.cgi?id=1935301 thus possibly breaking future actions against this DB (see the link for an example, also https://www.postgresql.org/message-id/3566642.1618422939%40sss.pgh.pa.us).

Expected Behavior

data_directory not set in postgresql.conf when systemd is used and thus the environment variable is present

Steps to Reproduce

install a postgresql setup :)

Environment

  • Version 10.0.3
  • Platform CentOS Stream 8

Additional Context

This is the exact opposite of #510 🤷‍♀️

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions