diff --git a/postgres/files/pgbackup-bullseye.sh b/postgres/files/pgbackup-bullseye.sh
new file mode 100755
index 0000000000000000000000000000000000000000..06c8e980afe64e1d28497187c5e6e395f166721d
--- /dev/null
+++ b/postgres/files/pgbackup-bullseye.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+for DB in $(sudo -u postgres psql -t -q -A -c "select datname from pg_catalog.pg_database where not datname like 'template%';")
+do
+	sudo -u postgres pg_dump $DB | gzip -c -- > ${DB}.sql.gz
+done
+
+sudo -u postgres pg_dumpall -g -U postgres | gzip -c -- > pg_dumpall.sql.gz
+
diff --git a/postgres/tasks/main.yml b/postgres/tasks/main.yml
index 072133bf51a86c44673b64cedce1dd77a64272b9..1867e9cf5be8eab78ee4afe5c6113f8e50a87b4b 100644
--- a/postgres/tasks/main.yml
+++ b/postgres/tasks/main.yml
@@ -38,8 +38,8 @@
 
 - name: ensure we have our postgres backup script
   copy:
-    src: pgbackup.sh
-    dest: /usr/local/bin/
+    src: "pgbackup{{ '-bullseye' if ansible_distribution_major_version|int(default=99) > 10 else '' }}.sh"
+    dest: /usr/local/bin/pgbackup.sh
     owner: root
     group: root
     mode: '0755'