sql >> Database >  >> RDS >> Mysql

Mysql-database importeren met Ruby/Chef Recipe for Vagrant

Als het een fout in het bestandspad is en je gebruikt chef solo, probeer dan het pad te gebruiken dat is opgegeven in solo.rb , zoals:

/tmp/chef-solo/site-cookbooks/path_to_file.sql

Overweeg in het algemeen het gebruik van het database-kookboek voor mysql gebruikers- en databasebeheertaken. Nadat u de benodigde kookboekafhankelijkheden hebt ingesteld, kunt u een dergelijke code in de default.rb van uw hoofdrecept plaatsen :

# 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

Die laatste heb ik niet getest, omdat het opslaan van een databasebestand in de chef-directory de zaken echt vertraagt.

Zie ook:SQL-bestand importeren in mysql



  1. MySQL-database herstellen vanuit fysieke bestanden

  2. Selecteer eerste record als er geen overeenkomen

  3. Laravel onbekende kolom 'updated_at'

  4. Hoe flutter te verbinden met localhost mysql-database