Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Importando banco de dados Mysql usando Ruby/Chef Recipe for Vagrant


Se for um erro de caminho de arquivo e você estiver usando o chef solo, tente usar o caminho especificado em solo.rb , Como:
/tmp/chef-solo/site-cookbooks/path_to_file.sql

Como observação geral, considere usar o livro de receitas de banco de dados para tarefas de gerenciamento de usuário e banco de dados mysql. Depois de configurar as dependências necessárias do livro de receitas, você pode colocar um código como este no default.rb da sua receita principal :
# externalize conection info in a ruby hash
mysql_connection_info = {
  :host => "localhost",
  :username => 'root',
  :password => node['mysql']['server_root_password']
}

# drop if exists, then create a mysql database named DB_NAME
mysql_database 'DB_NAME' do
  connection mysql_connection_info
  action [:drop, :create]
end

# query a database from a sql script on disk
mysql_database "DB_NAME" do
  connection mysql_connection_info
  sql { ::File.open("/tmp/chef-solo/site-cookbooks/main/path/to/sql_script.sql").read }
  action :query
end

#or import from a dump file
mysql_database "DB_NAME" do
  connection mysql_connection_info
  sql "source /tmp/chef-solo/site-cookbooks/main/path/to/sql_dump.sql;"
end

Não testei esse último porque armazenar um arquivo de banco de dados no diretório do chef realmente torna as coisas mais lentas.

Veja também:Importar arquivo SQL para o mysql