From 856e0795eb05eacf8b34cc4d056a7c05d94c512a Mon Sep 17 00:00:00 2001 From: gregharvey Date: Wed, 12 Apr 2023 10:22:23 +0200 Subject: [PATCH 1/2] Adding escaped backticks to db names to be safe. --- .../database_backup-mysql/tasks/deploy-rolling.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml b/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml index 71fa7580..88b51523 100644 --- a/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml +++ b/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml @@ -7,10 +7,20 @@ # Note: we don't use the mysql_db Ansible module on purpose. # If database already exists, we want to fail and not override it # with previous build. + # @TODO fix this so we check if the database exists and exit with + # the proper plugin instead of using command. - name: Create new database. - ansible.builtin.command: mysql --defaults-extra-file={{ database.credentials_file }} -e "CREATE DATABASE {{ _mysql_build_database_name }};" + ansible.builtin.command: mysql --defaults-extra-file={{ database.credentials_file }} -e "CREATE DATABASE \`{{ _mysql_build_database_name }}\`;" run_once: true +#- name: Create a new database. +# community.mysql.mysql_db: +# name: "{{ _mysql_build_database_name }}" +# state: present +# config_file: "{{ database.credentials_file }}" +# config_overrides_defaults: true +# run_once: true + - name: Populate new database. ansible.builtin.shell: "mysqldump --defaults-extra-file={{ database.credentials_file }} {{ mysql_backup.mysqldump_params }} {{ _mysql_previous_build_database_name }} | mysql --defaults-extra-file={{ database.credentials_file }} {{ _mysql_build_database_name }}" when: previous_build_number > 0 From 2549bab19bded4d4234a96934dc010d8a15860dd Mon Sep 17 00:00:00 2001 From: gregharvey Date: Wed, 12 Apr 2023 10:33:41 +0200 Subject: [PATCH 2/2] Looks like Ansible auto-escapes backticks. --- .../database_backup-mysql/tasks/deploy-rolling.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml b/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml index 88b51523..f7f109bc 100644 --- a/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml +++ b/roles/database_backup/database_backup-mysql/tasks/deploy-rolling.yml @@ -10,7 +10,7 @@ # @TODO fix this so we check if the database exists and exit with # the proper plugin instead of using command. - name: Create new database. - ansible.builtin.command: mysql --defaults-extra-file={{ database.credentials_file }} -e "CREATE DATABASE \`{{ _mysql_build_database_name }}\`;" + ansible.builtin.command: mysql --defaults-extra-file={{ database.credentials_file }} -e "CREATE DATABASE `{{ _mysql_build_database_name }}`;" run_once: true #- name: Create a new database.