Ansible mysqldb добавить строку базы данных

Можно ли добавить оператор базы данных add-drop в дамп, сгенерированный mysql_db?

Мой модуль работает нормально, и дамп хорошо сгенерирован, но я хочу добавить строку "-B --add-drop-database" (как в команде mysqldump), чтобы получить в начале дампа:

DROP DATABASE IF EXISTS `my_db`*/;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_db`;

2 ответа

Вы можете попробовать создать пользовательский my.cnf с

[mysqldump]
add-drop-database

И пройти my.cnf путь как config_file параметр для модуля mysql_db.

Ансибльmysql_dbкогда используешьstate=dumpна самом деле работаетmysqldumpна заднем фоне.

Таким образом, в Ansible вы можете передать любой аргумент, который вы можете найти при запуске.mysqldump --helpс опцией:dump_extra_args

Итак, в вашем случае playbook может выглядеть так:

          - name: "Export databases to local file {{dump_prefix}}_*.sql"
      mysql_db:
        name  : "{{ item }}"
        state : dump
        target: "{{dump_prefix}}_{{item}}.sql"
        login_user    : "{{ from_user }}"
        login_password: "..."
        login_host    : "{{ from_server }}"
        dump_extra_args: --column-statistics=0 --add-drop-database
Другие вопросы по тегам