Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def copy_template_database
- template_name = "customerdb1" # Database to copy from
- new_name = "temp" #database to create & copy to
- #connect to template database to copy. Note that this will override any previous
- #connections for all Models that inherit from ActiveRecord::Base
- ActiveRecord::Base.establish_connection({:adapter => "mysql", :database => template_name, :host => "olddev",
- :username => "root", :password => "password" })
- sql_connection = ActiveRecord::Base.connection
- sql_connection.execute("CREATE DATABASE #{new_name} CHARACTER SET latin1 COLLATE latin1_general_ci")
- tables = sql_connection.select_all("Show Tables")
- #the results are an array of hashes, ie:
- # [{"table_from_customerdb1" => "customers"},{"table_from_customerdb1" => "employees},...]
- table_names = Array.new
- tables.each { |hash| hash.each_value { |name| table_names << name }}
- table_names.each { |name|
- sql_connection.execute("CREATE TABLE #{new_name}.#{name} LIKE #{template_name}.#{name}")
- sql_connection.execute("INSERT INTO #{new_name}.#{name} SELECT * FROM #{template_name}.#{name}")
- }
- #This statement is optional. It connects ActiveRecord to the new database
- ActiveRecord::Base.establish_connection({:adapter => "mysql", :database => new_name, :host => "olddev",
- :username => "root", :password => "password" })
- end
- > mysqldump -uroot -proot templateDB > dump.sql
- > mysql -uroot -proot --execute="CREATE DATABASE newDB"
- > mysql -uroot -proot newDB < dump.sql
Add Comment
Please, Sign In to add comment