sql >> Database teknologi >  >> RDS >> Mysql

Importerer Mysql-database ved hjælp af Ruby/Chef-opskrift til Vagrant

Hvis det er en filstifejl, og du bruger chef solo, kan du prøve at bruge stien angivet i solo.rb , som:

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

Som en generel bemærkning bør du overveje at bruge databasekogebogen til mysql bruger- og databasehåndteringsopgaver. Når du har konfigureret de nødvendige kogebogsafhængigheder, kan du indsætte kode som denne i din hovedopskrifts default.rb :

# 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

Har ikke testet den sidste, fordi lagring af en databasefil i kokkebiblioteket virkelig gør tingene langsommere.

Se også:Importer SQL-fil til mysql



  1. spring over at kopiere til tmp-tabel på disk mysql

  2. Sådan benchmarker du PostgreSQL-ydelse

  3. Hvordan date_trunc() virker i PostgreSQL

  4. CONCAT() Funktion i Oracle