mysql_db - удалить все базы данных - PullRequest
0 голосов
/ 22 апреля 2020

Я хотел удалить несколько баз данных, установив «имя» для всех и с условием «когда» относительно указанного c имени. К сожалению, после того, как это не удалось, я проверил в документации:

name = all Может быть предоставлено только в случае состояния дампа или импорта.

Есть ли обходной путь для удаления всех (mysql) базы данных, которые соответствуют указанному c имени (например, все с именами, начинающимися с "temp_20200422_"?

1 Ответ

0 голосов
/ 23 апреля 2020

Существует возможность использовать модуль mysql_info для получения списка всех баз данных, а затем использовать его в l oop в mysql_db

 - name: Get list of databases
      mysql_info:
        login_user: "{{ mysql_database.user }}"
        login_password: "{{ mysql_database.password }}"
        login_host: "{{ mysql_database.address }}"
        filter:
        - databases
      register: databases

- name: "Delete temp databases older than 1 day"
  mysql_db:
    name: "{{ db }}"
    state: absent
    login_user: "{{ mysql_database.user }}"
    login_password: "{{ mysql_database.password }}"
    login_host: "{{ mysql_database.address }}"
  loop_control:
    loop_var: db
  loop: "{{ databases.databases.keys() }}"
  when: "temp__" in db
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...