Como faço para criar e restaurar um despejo de banco de dados mysql com o Chef?

0

Ambiente

Objetivo

Estou tentando replicar / clonar meu servidor Wordpress de produção.

Eu seria capaz de criar um despejo do banco de dados remoto

mysqldump --databases my_database > dump.sql

e restaurar

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

Eu tentei isso sem sucesso:

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

e isso

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

Que funcionou ainda menos?

Alguma sugestão?

    
por zabumba 29.07.2014 / 22:31

1 resposta

0

Eu fiquei frustrado com isso por algum tempo, mas finalmente encontrei uma solução.

Na minha situação, o problema era com "DELIMITER", que é um comando usado apenas pelo cliente da linha de comando mysql. Não faz parte da API, que é o que a gem do mysql está usando.

FONTE: link

Para restaurar a partir do despejo, eu uso essa função na receita:

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