¿Cómo creo y restauro un volcado de base de datos MySQL con Chef?

¿Cómo creo y restauro un volcado de base de datos MySQL con Chef?

Ambiente

Objetivo

Estoy intentando replicar/clonar mi servidor de producción de Wordpress.

Podría crear un volcado de la base de datos remota.

mysqldump --databases my_database > dump.sql

y restaurar

mysql -u my_user -p -D my_database < dump.sql

He probado esto sin éxito:

mysql_anybots_connection_info = {
  :host     => 'localhost',
  :username => 'my_user',
  :password => "my_password"
}

mysql_database "my_database" do
   connection mysql_connection_info
   sql "source /path/dump.sql;"
end

y esto

mysql_database "my_database" do
  connection mysql_connection_info
  sql { ::File.open("/pul/dump.sql").read }
  action :query
end

¿Cuál funcionó aún menos?

¿Alguna sugerencia?

Respuesta1

Estuve frustrado por esto por algún tiempo, pero finalmente encontré una solución.

En mi situación, el problema fue con "DELIMITER", que es un comando que sólo utiliza el cliente de línea de comandos mysql. No es parte de la API, que es lo que usa la gema mysql.

FUENTE:https://github.com/opscode-cookbooks/database/issues/75

Para restaurar desde el volcado utilizo esta función en la receta:

execute 'restore-databases' do
  command "mysql -u root -p#{node['mysql']['server_root_password']} -D databaseName < /path/to_dump.sql"
end

información relacionada