Jakub Sokołowski 652ed466f8
databases: fix creation by going back to gexec
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-05 13:39:14 +01:00

26 lines
931 B
YAML

---
- name: 'Create user: {{ db.get("user", db.name) }}'
command: >
docker exec {{ postgres_ha_cont_name }}
psql
--username={{ postgres_ha_admin_user }}
--port={{ postgres_ha_cont_port }}
--command
"DO $$
BEGIN
CREATE USER \"{{ db.get("user", db.name) }}\" PASSWORD '{{ db.pass | mandatory }}';
EXCEPTION WHEN DUPLICATE_OBJECT THEN
RAISE NOTICE 'not creating role {{ db.get("user", db.name) }} -- it already exists';
END
$$;"
- name: 'Create database: {{ db.name | mandatory }}'
shell: >
echo "SELECT
'CREATE DATABASE \"{{ db.name }}\" WITH OWNER \"{{ db.get("user", db.name) }}\";'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '{{ db.name }}')\\\gexec" |
docker exec -i {{ postgres_ha_cont_name }} \
psql \
--username={{ postgres_ha_admin_user }} \
--port={{ postgres_ha_cont_port }}