aboutsummaryrefslogtreecommitdiffstats
path: root/roles/sabredav/tasks/database.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/sabredav/tasks/database.yml')
-rw-r--r--roles/sabredav/tasks/database.yml46
1 files changed, 46 insertions, 0 deletions
diff --git a/roles/sabredav/tasks/database.yml b/roles/sabredav/tasks/database.yml
new file mode 100644
index 0000000..0089788
--- /dev/null
+++ b/roles/sabredav/tasks/database.yml
@@ -0,0 +1,46 @@
+- name: create database
+ postgresql_db:
+ name: '{{ sabredav_db_name }}'
+ state: present
+ delegate_to: "{{ postgresql_inventory_host }}"
+ become: yes
+ become_user: postgres
+
+- name: create database user
+ postgresql_user:
+ name: '{{ sabredav_user }}'
+ db: '{{ sabredav_db_name }}'
+ priv: ALL
+ state: present
+ delegate_to: "{{ postgresql_inventory_host }}"
+ become: yes
+ become_user: postgres
+
+- name: check if database schema is initialized
+ postgresql_query:
+ login_user: '{{ sabredav_user }}'
+ login_host: '{{ sabredav_db_host }}'
+ db: '{{ sabredav_db_name }}'
+ query: SELECT 1 FROM calendars
+ become: yes
+ become_user: apache
+ environment:
+ GSS_USE_PROXY: 'yes'
+ register: sabredav_check_db
+ failed_when: no
+
+- name: initialize database schema
+ postgresql_query:
+ login_user: '{{ sabredav_user }}'
+ login_host: '{{ sabredav_db_host }}'
+ db: '{{ sabredav_db_name }}'
+ path_to_script: '{{ sabredav_home }}/pgsql.schema.sql'
+ as_single_query: yes
+ become: yes
+ become_user: apache
+ environment:
+ GSS_USE_PROXY: 'yes'
+ when:
+ - sabredav_check_db.msg is defined
+ - sabredav_check_db.msg is search('relation "calendars" does not exist')
+