supabase-postgres.git / summary / log / commit / refs
commit 1081090084ba150f98087ad58f8317402cb74a0d
Author: Douglas J Hunley <doug.hunley@gmail.com>
Commit: GitHub <noreply@github.com>
Date: Thu Dec 11 14:30:32 2025 +0000
refactor: Refactor PostgreSQL config inclusion and paths (#1971)
- Update Dockerfiles to standardize `unix_socket_directories`.
- Introduce `include_dir` in `postgresql.conf.j2` to manage configurations within `/etc/postgresql-custom/conf.d/`.
- Migrate generated optimizations and custom overrides to the new `conf.d` directory.
- Adjust service files (`database-optimizations.service`, `postgres_prestart.sh`) and Ansible tasks to reference the updated configuration paths.
Dockerfile-15 | 1 -
Dockerfile-17 | 1 -
Dockerfile-orioledb-17 | 1 -
database_optimizations.service} | 2 +-
ansible/files/postgres_prestart.sh.j2 | 4 ++--
.../files/postgresql_config/conf.d/custom_overrides.conf | 0
.../postgresql_config/conf.d/generated_optimizations.conf | 0
ansible/files/postgresql_config/postgresql.conf.j2 | 7 +------
postgresql.service} | 4 ++--
ansible/tasks/setup-postgres.yml | 10 +++++-----
ansible/tasks/setup-supabase-internal.yml | 14 --------------
nix/tests/postgresql.conf.in | 2 +-
12 files changed, 12 insertions(+), 34 deletions(-)
diff --git a/Dockerfile-15 b/Dockerfile-15
index c990acf1..bce2526c 100644
--- a/Dockerfile-15
+++ b/Dockerfile-15
@@ -218,7 +218,6 @@ COPY --chown=postgres:postgres ansible/files/walg_helper_scripts/wal_fetch.sh /h
COPY ansible/files/walg_helper_scripts/wal_change_ownership.sh /root/wal_change_ownership.sh
RUN sed -i \
- -e "s|#unix_socket_directories = '/tmp'|unix_socket_directories = '/var/run/postgresql'|g" \
-e "s|#session_preload_libraries = ''|session_preload_libraries = 'supautils'|g" \
-e "s|#include = '/etc/postgresql-custom/supautils.conf'|include = '/etc/postgresql-custom/supautils.conf'|g" \
/etc/postgresql/postgresql.conf && \
diff --git a/Dockerfile-17 b/Dockerfile-17
index 847e9cda..0dc465bd 100644
--- a/Dockerfile-17
+++ b/Dockerfile-17
@@ -222,7 +222,6 @@ COPY --chown=postgres:postgres ansible/files/walg_helper_scripts/wal_fetch.sh /h
COPY ansible/files/walg_helper_scripts/wal_change_ownership.sh /root/wal_change_ownership.sh
RUN sed -i \
- -e "s|#unix_socket_directories = '/tmp'|unix_socket_directories = '/var/run/postgresql'|g" \
-e "s|#session_preload_libraries = ''|session_preload_libraries = 'supautils'|g" \
-e "s|#include = '/etc/postgresql-custom/supautils.conf'|include = '/etc/postgresql-custom/supautils.conf'|g" \
/etc/postgresql/postgresql.conf && \
diff --git a/Dockerfile-orioledb-17 b/Dockerfile-orioledb-17
index 39b42a6f..ebcaa38e 100644
--- a/Dockerfile-orioledb-17
+++ b/Dockerfile-orioledb-17
@@ -222,7 +222,6 @@ COPY --chown=postgres:postgres ansible/files/walg_helper_scripts/wal_fetch.sh /h
COPY ansible/files/walg_helper_scripts/wal_change_ownership.sh /root/wal_change_ownership.sh
RUN sed -i \
- -e "s|#unix_socket_directories = '/tmp'|unix_socket_directories = '/var/run/postgresql'|g" \
-e "s|#session_preload_libraries = ''|session_preload_libraries = 'supautils'|g" \
-e "s|#include = '/etc/postgresql-custom/supautils.conf'|include = '/etc/postgresql-custom/supautils.conf'|g" \
/etc/postgresql/postgresql.conf && \
diff --git a/ansible/files/database-optimizations.service.j2 b/ansible/files/database_optimizations.service
similarity index 84%
rename from ansible/files/database-optimizations.service.j2
rename to ansible/files/database_optimizations.service
index f25fc09c..23b99464 100644
--- a/ansible/files/database-optimizations.service.j2
+++ b/ansible/files/database_optimizations.service
@@ -4,7 +4,7 @@ Description=Postgresql optimizations
[Service]
Type=oneshot
# we do not want failures from these commands to cause downstream service startup to fail
-ExecStart=-/opt/supabase-admin-api optimize db --destination-config-file-path /etc/postgresql-custom/generated-optimizations.conf
+ExecStart=-/opt/supabase-admin-api optimize db --destination-config-file-path /etc/postgresql-custom/conf.d/generated_optimizations.conf
ExecStart=-/opt/supabase-admin-api optimize pgbouncer --destination-config-file-path /etc/pgbouncer-custom/generated-optimizations.ini
User=adminapi
diff --git a/ansible/files/postgres_prestart.sh.j2 b/ansible/files/postgres_prestart.sh.j2
index cc8ff53c..97bc949b 100644
--- a/ansible/files/postgres_prestart.sh.j2
+++ b/ansible/files/postgres_prestart.sh.j2
@@ -15,7 +15,7 @@ check_orioledb_enabled() {
}
get_shared_buffers() {
- local opt_conf="/etc/postgresql-custom/generated-optimizations.conf"
+ local opt_conf="/etc/postgresql-custom/conf.d/generated_optimizations.conf"
if [ ! -f "$opt_conf" ]; then
return 0
fi
@@ -134,4 +134,4 @@ if [ $(locale -a | grep -c en_US.utf8) -eq 0 ]; then
locale-gen
fi
-main
\ No newline at end of file
+main
diff --git a/ansible/files/postgresql_config/conf.d/custom_overrides.conf b/ansible/files/postgresql_config/conf.d/custom_overrides.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/ansible/files/postgresql_config/conf.d/generated_optimizations.conf b/ansible/files/postgresql_config/conf.d/generated_optimizations.conf
new file mode 100644
index 00000000..e69de29b
diff --git a/ansible/files/postgresql_config/postgresql.conf.j2 b/ansible/files/postgresql_config/postgresql.conf.j2
index 0183482c..316a5f22 100644
--- a/ansible/files/postgresql_config/postgresql.conf.j2
+++ b/ansible/files/postgresql_config/postgresql.conf.j2
@@ -64,7 +64,7 @@ listen_addresses = '*' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
#max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
-#unix_socket_directories = '/tmp' # comma-separated list of directories
+unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
@@ -752,11 +752,6 @@ jit_provider = 'llvmjit' # JIT library to use
#include_if_exists = '...' # include file only if it exists
#include = '...' # include file
-# Automatically generated optimizations
-#include = '/etc/postgresql-custom/generated-optimizations.conf'
-# User-supplied custom parameters, override any automatically generated ones
-#include = '/etc/postgresql-custom/custom-overrides.conf'
-
# supautils specific configurations
#include = '/etc/postgresql-custom/supautils.conf'
diff --git a/ansible/files/postgresql_config/postgresql.service.j2 b/ansible/files/postgresql_config/postgresql.service
similarity index 90%
rename from ansible/files/postgresql_config/postgresql.service.j2
rename to ansible/files/postgresql_config/postgresql.service
index efb52f18..f8b59117 100644
--- a/ansible/files/postgresql_config/postgresql.service.j2
+++ b/ansible/files/postgresql_config/postgresql.service
@@ -2,8 +2,8 @@
Description=PostgreSQL database server
Documentation=man:postgres(1)
{% if supabase_internal is defined %}
-Requires=database-optimizations.service
-After=database-optimizations.service
+Requires=database_optimizations.service
+After=database_optimizations.service
{% endif %}
[Service]
diff --git a/ansible/tasks/setup-postgres.yml b/ansible/tasks/setup-postgres.yml
index 46511703..3fcc5796 100644
--- a/ansible/tasks/setup-postgres.yml
+++ b/ansible/tasks/setup-postgres.yml
@@ -147,11 +147,11 @@
group: 'postgres'
mode: '0664'
owner: 'postgres'
- path: "/etc/postgresql-custom/{{ pg_config_item }}"
+ path: "/etc/postgresql-custom/conf.d{{ pg_config_item }}"
state: 'touch'
loop:
- - 'custom-overrides.conf'
- - 'generated-optimizations.conf'
+ - 'custom_overrides.conf'
+ - 'generated_optimizations.conf'
loop_control:
loop_var: 'pg_config_item'
@@ -274,9 +274,9 @@
- name: copy PG and optimizations systemd units
ansible.builtin.template:
dest: "/etc/systemd/system/{{ systemd_svc_item | basename }}"
- src: "files/{{ systemd_svc_item }}.j2"
+ src: "files/{{ systemd_svc_item }}"
loop:
- - 'database-optimizations.service'
+ - 'database_optimizations.service'
- 'postgresql_config/postgresql.service'
loop_control:
loop_var: 'systemd_svc_item'
diff --git a/ansible/tasks/setup-supabase-internal.yml b/ansible/tasks/setup-supabase-internal.yml
index d5906201..7650d42b 100644
--- a/ansible/tasks/setup-supabase-internal.yml
+++ b/ansible/tasks/setup-supabase-internal.yml
@@ -75,20 +75,6 @@
state: 'directory'
become: true
-- name: Include file for generated optimizations in postgresql.conf
- ansible.builtin.replace:
- path: '/etc/postgresql/postgresql.conf'
- regexp: "#include = '/etc/postgresql-custom/generated-optimizations.conf'"
- replace: "include = '/etc/postgresql-custom/generated-optimizations.conf'"
- become: true
-
-- name: Include file for custom overrides in postgresql.conf
- ansible.builtin.replace:
- path: '/etc/postgresql/postgresql.conf'
- regexp: "#include = '/etc/postgresql-custom/custom-overrides.conf'"
- replace: "include = '/etc/postgresql-custom/custom-overrides.conf'"
- become: true
-
- name: Install Postgres exporter
ansible.builtin.import_tasks:
file: internal/postgres-exporter.yml
diff --git a/nix/tests/postgresql.conf.in b/nix/tests/postgresql.conf.in
index e4f844d0..6a6bfeae 100644
--- a/nix/tests/postgresql.conf.in
+++ b/nix/tests/postgresql.conf.in
@@ -62,7 +62,7 @@ listen_addresses = '*' # what IP address(es) to listen on;
#port = @PGSQL_DEFAULT_PORT@ # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
-unix_socket_directories = '/tmp' # comma-separated list of directories
+unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
[parent: 6a97ebee6d17]