Skip to content

Commit fe2c90c

Browse files
committed
feat: make pg_prove an nix installable package in our set
1 parent 36a5c3e commit fe2c90c

File tree

6 files changed

+62
-132
lines changed

6 files changed

+62
-132
lines changed

ansible/playbook.yml

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -71,46 +71,11 @@
7171
tags:
7272
- install-supabase-internal
7373

74-
# - name: Start Postgres Database
75-
# systemd:
76-
# name: postgresql
77-
# state: started
78-
# when: not ebssurrogate_mode
79-
80-
# - name: Start Postgres Database without Systemd
81-
# become: yes
82-
# become_user: postgres
83-
# shell:
84-
# cmd: /usr/lib/postgresql/bin/pg_ctl -D /var/lib/postgresql/data start
85-
# when: ebssurrogate_mode
86-
# TODO bring into 2nd phase
87-
8874
- name: Adjust APT update intervals
8975
copy:
9076
src: files/apt_periodic
9177
dest: /etc/apt/apt.conf.d/10periodic
9278

93-
# - name: Transfer init SQL files
94-
# copy:
95-
# src: files/{{ item.source }}
96-
# dest: /tmp/{{ item.dest }}
97-
# loop: "{{ sql_files }}"
98-
99-
# - name: Execute init SQL files
100-
# become: yes
101-
# become_user: postgres
102-
# shell:
103-
# cmd: /usr/lib/postgresql/bin/psql -f /tmp/{{ item.dest }}
104-
# loop: "{{ sql_files }}"
105-
106-
# - name: Delete SQL scripts
107-
# file:
108-
# path: /tmp/{{ item.dest }}
109-
# state: absent
110-
# loop: "{{ sql_files }}"
111-
# TODO bring into 2nd phase
112-
113-
11479
- name: First boot optimizations
11580
import_tasks: tasks/internal/optimizations.yml
11681
tags:
@@ -143,32 +108,8 @@
143108
update_cache: yes
144109
cache_valid_time: 3600
145110

146-
# - name: Clean out build dependencies
147-
# import_tasks: tasks/clean-build-dependencies.yml
148-
149-
# - name: Restart Postgres Database without Systemd
150-
# become: yes
151-
# become_user: postgres
152-
# shell:
153-
# cmd: /usr/lib/postgresql/bin/pg_ctl -D /var/lib/postgresql/data restart -o "-c shared_preload_libraries='pg_tle'"
154-
# when: ebssurrogate_mode
155-
156-
# - name: Run migrations
157-
# import_tasks: tasks/setup-migrations.yml
158-
# tags:
159-
# - migrations
160-
161-
# - name: Stop Postgres Database without Systemd
162-
# become: yes
163-
# become_user: postgres
164-
# shell:
165-
# cmd: /usr/lib/postgresql/bin/pg_ctl -D /var/lib/postgresql/data stop
166-
# when: ebssurrogate_mode
167-
168-
# - name: Run unit tests
169-
# import_tasks: tasks/test-image.yml
170-
# tags:
171-
# - unit-tests
111+
- name: Clean out build dependencies
112+
import_tasks: tasks/clean-build-dependencies.yml
172113

173114
# - name: Collect Postgres binaries
174115
# import_tasks: tasks/internal/collect-pg-binaries.yml

ansible/tasks/internal/collect-pg-binaries.yml

Lines changed: 0 additions & 49 deletions
This file was deleted.

ansible/tasks/setup-extensions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
- name: Install hypopg
8181
import_tasks: tasks/postgres-extensions/26-hypopg.yml
8282

83-
- name: Install pg_repack
83+
- name: Install pg_repack
8484
import_tasks: tasks/postgres-extensions/27-pg_repack.yml
8585

8686
- name: Install pgvector

ansible/tasks/stage2/stage2-setup-postgres.yml

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -74,24 +74,26 @@
7474
- "/home/postgres/.nix-profile/share/postgresql/extension/*"
7575
become: yes
7676

77+
- name: Recursively create destination directory
78+
file:
79+
path: /usr/lib/postgresql/share/postgresql/contrib/
80+
state: directory
81+
recurse: yes
7782

78-
# - name: Create directories recursively
79-
# file:
80-
# path: "/usr/lib/postgresql/share/postgresql/contrib/{{ item | dirname }}"
81-
# state: directory
82-
# with_fileglob:
83-
# - "/home/postgres/.nix-profile/share/postgresql/contrib/*"
84-
85-
# - name: Create symbolic links for files
86-
# file:
87-
# src: "{{ item }}"
88-
# dest: "/usr/lib/postgresql/share/postgresql/contrib/{{ item | regex_replace('^/home/postgres/.nix-profile/share/postgresql/contrib/', '') }}"
89-
# state: link
90-
# with_find:
91-
# paths: "/home/postgres/.nix-profile/share/postgresql/contrib/"
92-
# recurse: yes
93-
# patterns: "*"
94-
# file_type: any
83+
- name: Create symbolic link for each directory
84+
file:
85+
src: "{{ item.src }}"
86+
dest: "{{ item.dest }}"
87+
state: link
88+
loop:
89+
- { src: "/home/postgres/.nix-profile/share/postgresql/contrib/", dest: "/usr/lib/postgresql/share/postgresql/contrib/" }
90+
91+
- name: Create symbolic link for each file
92+
file:
93+
src: "{{ item.src }}"
94+
dest: "{{ item.dest }}"
95+
state: link
96+
loop: "{{ query('fileglob', '/home/postgres/.nix-profile/share/postgresql/contrib/*') }}"
9597

9698
- name: Create symbolic links from /home/postgres/.nix-profile/share/postgresql/timezonesets to /usr/lib/postgresql/share/postgresql/timeszonesets
9799
file:
@@ -115,7 +117,7 @@
115117
# Install extensions before init
116118
# - name: Install Postgres extensions
117119
# import_tasks: tasks/setup-docker.yml
118-
# TODO resolve in new build
120+
# TODO resolve in this stage
119121

120122
- name: Link database data_dir to data volume directory
121123
file:
@@ -146,9 +148,46 @@
146148
src: /tmp/ansible-playbook/files/database-optimizations.service.j2
147149
dest: /etc/systemd/system/database-optimizations.service
148150

151+
# - name: Transfer init SQL files
152+
# copy:
153+
# src: files/{{ item.source }}
154+
# dest: /tmp/{{ item.dest }}
155+
# loop: "{{ sql_files }}"
156+
# probably do not need this step
157+
158+
- name: Execute init SQL files
159+
become: yes
160+
become_user: postgres
161+
shell:
162+
cmd: /usr/lib/postgresql/bin/psql -f /tmp/ansible-playbook/files/{{ item.dest }}
163+
loop: "{{ sql_files }}"
164+
165+
- name: Delete SQL scripts
166+
file:
167+
path: /tmp/{{ item.dest }}
168+
state: absent
169+
loop: "{{ sql_files }}"
170+
149171
# # # Reload
150172
- name: System - systemd reload
151173
systemd:
152174
enabled: yes
153175
name: postgresql
154176
daemon_reload: yes
177+
178+
179+
- name: Run migrations
180+
import_tasks: tasks/setup-migrations.yml
181+
tags:
182+
- migrations
183+
184+
- name: Stop Postgres with systemd
185+
systemd:
186+
state: stopped
187+
name: postgresql
188+
189+
190+
- name: Run unit tests
191+
import_tasks: tasks/test-image.yml
192+
tags:
193+
- unit-tests

flake.nix

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@
137137

138138
#this var is a convenience setting to import the orioledb patched version of postgresql
139139
postgresql_orioledb_16 = oriole_pkgs.postgresql_orioledb_16;
140-
#postgis_override = pkgs.postgis_override;
141140

142141
# Create a 'receipt' file for a given postgresql package. This is a way
143142
# of adding a bit of metadata to the package, which can be used by other
@@ -399,7 +398,7 @@
399398
psql_15 = makePostgres "15";
400399
#psql_16 = makePostgres "16";
401400
#psql_orioledb_16 = makeOrioleDbPostgres "16_23" postgresql_orioledb_16;
402-
401+
pg_prove = pg_prove;
403402
# Start a version of the server.
404403
start-server =
405404
let

nix/ext/postgis.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
7979
homepage = "https://postgis.net/";
8080
changelog = "https://git.osgeo.org/gitea/postgis/postgis/raw/tag/${version}/NEWS";
8181
license = licenses.gpl2;
82-
maintainers = with maintainers; teams.geospatial.members ++ [ marcweber wolfgangwalther ];
82+
maintainers = with maintainers; [ samrose ];
8383
inherit (postgresql.meta) platforms;
8484
};
8585
}

0 commit comments

Comments
 (0)