diff --git a/config/environment.rb b/config/environment.rb index 93f8381ed2..74e6118848 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,18 +1,15 @@ # Load the rails application require File.expand_path('../application', __FILE__) +require 'carto/configuration' module Rails class Application class Configuration + include Carto::Configuration def database_configuration require 'erb' - if ENV['RAILS_DATABASE_FILE'] - db_config = YAML.load(File.read(File.join(Rails.root, 'config/' + ENV['RAILS_DATABASE_FILE']))) - else - db_config = YAML.load(File.read(File.join(Rails.root, 'config/database.yml'))) - end - db_config + db_config_file end end end diff --git a/config/initializers/sequel.rb b/config/initializers/sequel.rb index 4e699b021e..f7103d9074 100644 --- a/config/initializers/sequel.rb +++ b/config/initializers/sequel.rb @@ -1,12 +1,10 @@ require 'active_record' +require_dependency 'carto/configuration' ::Sequel::DATABASES.each{|d| d.sql_log_level = :debug } -if ENV['RAILS_DATABASE_FILE'] - @dbconfig = YAML.load(File.read(File.join(Rails.root, 'config/' + ENV['RAILS_DATABASE_FILE']))) -else - @dbconfig = YAML.load(File.read(File.join(Rails.root, 'config/database.yml'))) -end +@dbconfig = Carto::Conf.new.db_config_file + # INFO: our current database.yml sets Sequel PostgreSQL adapter, which is called 'postgres'. Rails' is 'postgresql' @dbconfig[Rails.env]['adapter'] = 'postgresql' ActiveRecord::Base.establish_connection @dbconfig[Rails.env].merge({:prepared_statements => false}) diff --git a/lib/carto/configuration.rb b/lib/carto/configuration.rb new file mode 100644 index 0000000000..fcec38adef --- /dev/null +++ b/lib/carto/configuration.rb @@ -0,0 +1,14 @@ +module Carto::Configuration + def db_config_file + if ENV['RAILS_DATABASE_FILE'] + db_config = YAML.load(File.read(File.join(Rails.root, 'config/' + ENV['RAILS_DATABASE_FILE']))) + else + db_config = YAML.load(File.read(File.join(Rails.root, 'config/database.yml'))) + end + end +end + +# TODO: singleton +class Carto::Conf + include Carto::Configuration +end diff --git a/script/compare_metadata.rb b/script/compare_metadata.rb index 28f5a73a25..88d85dbf03 100644 --- a/script/compare_metadata.rb +++ b/script/compare_metadata.rb @@ -5,6 +5,7 @@ require 'yaml' require 'pg' require 'redis' +require_dependency 'carto/configuration' script_name = "script/compare_metadata.rb" data = `ps aux | grep "#{script_name}"` @@ -17,7 +18,7 @@ if data.length > 0 end config = YAML.load(File.read('../config/app_config.yml')) -database = YAML.load(File.read('../config/database.yml')) +database = Carto::Conf.new.db_config_file RAILS_ENV = ENV['RAILS_ENV'] || 'production' diff --git a/services/user-mover/config.rb b/services/user-mover/config.rb index f848e615ad..1c2170e4cc 100644 --- a/services/user-mover/config.rb +++ b/services/user-mover/config.rb @@ -1,4 +1,5 @@ require 'pg' +require 'carto/configuration' module CartoDB module DataMover @@ -6,7 +7,7 @@ module CartoDB def self.load_config root = File.expand_path(File.dirname(__FILE__)) config = YAML.load(File.read(File.join(root, '../../config/app_config.yml'))) - database = YAML.load(File.read(File.join(root, '../../config/database.yml'))) + database = Carto::Conf.new.db_config_file rails_env = ENV['RAILS_ENV'] || Rails.env || 'production' @config = { rails_env: rails_env,