mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 17:59:47 +02:00
Added rake db:all:drop rake tasks and check init_settings
This commit is contained in:
parent
62d76cee00
commit
0e13a1026e
2 changed files with 48 additions and 13 deletions
|
@ -1,4 +1,4 @@
|
|||
if ActiveRecord::Base.connection.table_exists? 'settings' # otherwise rake not working 100%
|
||||
if ActiveRecord::Base.connected? && ActiveRecord::Base.connection.table_exists?('settings') # otherwise rake not working 100%
|
||||
Setting.disclosure_name = true if Setting.disclosure_name.nil?
|
||||
Setting.disclosure_name = true if Setting.disclosure_name.nil?
|
||||
Setting.disclosure_org_name = true if Setting.disclosure_org_name.nil?
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
namespace :db do
|
||||
def databases
|
||||
@db ||= ["api_log_#{Rails.env}", "whois_#{Rails.env}", "#{Rails.env}"]
|
||||
def other_databases
|
||||
@db ||= ["api_log_#{Rails.env}", "whois_#{Rails.env}"]
|
||||
end
|
||||
|
||||
def schema_file(db)
|
||||
case db
|
||||
when databases.first
|
||||
when "api_log_#{Rails.env}"
|
||||
'api_log_schema.rb'
|
||||
when databases.second
|
||||
when "whois_#{Rails.env}"
|
||||
'whois_schema.rb'
|
||||
when databases.third
|
||||
'schema.rb'
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -24,11 +22,41 @@ namespace :db do
|
|||
|
||||
desc 'Create all databases: registry, api_log and whois'
|
||||
task create: [:environment] do
|
||||
databases.each do |name|
|
||||
puts "\n---------------------------- Create main database ----------------------------------------\n"
|
||||
Rake::Task['db:create'].invoke
|
||||
|
||||
other_databases.each do |name|
|
||||
begin
|
||||
conf = ActiveRecord::Base.configurations
|
||||
puts "\n---------------------------- Create #{name} ----------------------------------------\n"
|
||||
ActiveRecord::Base.clear_all_connections!
|
||||
ActiveRecord::Base.connection.create_database(conf[name]['database'], conf[name])
|
||||
conf = ActiveRecord::Base.configurations
|
||||
ActiveRecord::Base.connection.create_database(conf[name]['database'].to_sym, conf[name])
|
||||
rescue => e
|
||||
puts "\n#{e}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
desc 'Drop all databaseses: registry, api_log and whois'
|
||||
task drop: [:environment] do
|
||||
# just in case we allow only drop test, comment it out please for temp
|
||||
return unless Rails.env.test?
|
||||
|
||||
puts "\n---------------------------- Drop main database ----------------------------------------\n"
|
||||
Rake::Task['db:drop'].invoke
|
||||
|
||||
other_databases.each do |name|
|
||||
begin
|
||||
puts "\n---------------------------- #{name} dropped ----------------------------------------\n"
|
||||
ActiveRecord::Base.clear_all_connections!
|
||||
ActiveRecord::Base.establish_connection(name.to_sym)
|
||||
|
||||
conf = ActiveRecord::Base.configurations
|
||||
if ActiveRecord::Tasks::DatabaseTasks.drop(conf[name])
|
||||
puts "#{conf[name]['database']} dropped"
|
||||
else
|
||||
puts "Didn't find database #{name}, no drop"
|
||||
end
|
||||
rescue => e
|
||||
puts "\n#{e}"
|
||||
end
|
||||
|
@ -38,9 +66,13 @@ namespace :db do
|
|||
namespace :schema do
|
||||
desc 'Schema load for all databases: registry, api_log and whois'
|
||||
task load: [:environment] do
|
||||
databases.each do |name|
|
||||
puts "\n---------------------------- Main schema load ----------------------------------------\n"
|
||||
Rake::Task['db:schema:load'].invoke
|
||||
|
||||
other_databases.each do |name|
|
||||
begin
|
||||
puts "\n---------------------------- #{name} ----------------------------------------\n"
|
||||
puts "\n---------------------------- #{name} schema loaded ----------------------------------------\n"
|
||||
ActiveRecord::Base.clear_all_connections!
|
||||
ActiveRecord::Base.establish_connection(name.to_sym)
|
||||
if ActiveRecord::Base.connection.table_exists?('schema_migrations')
|
||||
puts 'Found tables, skip schema load!'
|
||||
|
@ -55,7 +87,10 @@ namespace :db do
|
|||
|
||||
desc 'Schema load for all databases: registry, api_log and whois'
|
||||
task dump: [:environment] do
|
||||
databases.each do |name|
|
||||
puts "\n---------------------------- Main schema load ----------------------------------------\n"
|
||||
Rake::Task['db:schema:dump'].invoke
|
||||
|
||||
other_databases.each do |name|
|
||||
begin
|
||||
puts "\n---------------------------- #{name} ----------------------------------------\n"
|
||||
filename = "#{Rails.root}/db/#{schema_file(name)}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue