mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 09:27:19 +02:00
68 lines
2.1 KiB
Ruby
68 lines
2.1 KiB
Ruby
namespace :db do
|
|
namespace :setup do
|
|
desc 'Create all databases: api_log and whois'
|
|
task all: [:environment, :load_config] do
|
|
Rake::Task['db:create:all'].invoke
|
|
Rake::Task['db:structure:load'].invoke
|
|
Rake::Task['db:schema:load:all'].invoke
|
|
|
|
ActiveRecord::Base.clear_all_connections!
|
|
ActiveRecord::Base.establish_connection(Rails.env.to_sym)
|
|
|
|
puts "\n---------------------------- Import seed ----------------------------------------\n"
|
|
Rake::Task['db:seed'].invoke
|
|
puts "\n All done!\n\n"
|
|
end
|
|
end
|
|
|
|
namespace :schema do
|
|
def other_databases
|
|
@other_dbs ||= ["api_log_#{Rails.env}", "whois_#{Rails.env}"]
|
|
end
|
|
|
|
def schema_file(db)
|
|
case db
|
|
when "api_log_#{Rails.env}"
|
|
'api_log_schema.rb'
|
|
when "whois_#{Rails.env}"
|
|
'whois_schema.rb'
|
|
end
|
|
end
|
|
|
|
namespace :load do
|
|
desc 'Schema load for all databases: api_log and whois'
|
|
task all: [:environment, :load_config] do
|
|
other_databases.each do |name|
|
|
begin
|
|
puts "\n------------------------ #{name} schema loading -----------------------------\n"
|
|
ActiveRecord::Base.clear_all_connections!
|
|
ActiveRecord::Base.establish_connection(name.to_sym)
|
|
load("#{Rails.root}/db/#{schema_file(name)}")
|
|
rescue => e
|
|
puts "\n#{e}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
namespace :dump do
|
|
desc 'Schema dump for all databases: api_log and whois'
|
|
task all: [:environment, :load_config] do
|
|
puts "\n---------------------------- #{Rails.env} schema dump--------------\n"
|
|
|
|
other_databases.each do |name|
|
|
begin
|
|
puts "\n---------------------------- #{name} ----------------------------------------\n"
|
|
filename = "#{Rails.root}/db/#{schema_file(name)}"
|
|
File.open(filename, 'w:utf-8') do |file|
|
|
ActiveRecord::Base.establish_connection(name.to_sym)
|
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
|
|
end
|
|
rescue => e
|
|
puts "\n#{e}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|