From 96ba4b8f309cfcd1d605e5c7fc05507b21c78c6f Mon Sep 17 00:00:00 2001 From: Adam Cooke Date: Thu, 1 Feb 2024 16:51:17 +0000 Subject: [PATCH] refactor: remove Postal.database_url --- config/database.yml | 16 +++++++++++++--- config/postal.defaults.yml | 1 + lib/postal/config.rb | 8 -------- lib/postal/message_db/mysql.rb | 8 +++++++- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/config/database.yml b/config/database.yml index 55f2c3d..577adc2 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,8 +1,18 @@ +default: &default + adapter: mysql2 + encoding: <%= Postal.config.main_db.encoding %> + pool: <%= Postal.config.main_db.pool_size %> + username: <%= Postal.config.main_db.username %> + password: <%= Postal.config.main_db.password %> + host: <%= Postal.config.main_db.host %> + port: <%= Postal.config.main_db.port %> + database: <%= Postal.config.main_db.database %> + development: - url: <%= Postal.database_url %> + <<: *default production: - url: <%= Postal.database_url %> + <<: *default test: - url: <%= Postal.database_url %> + <<: *default diff --git a/config/postal.defaults.yml b/config/postal.defaults.yml index 32059a2..ab5bb6d 100644 --- a/config/postal.defaults.yml +++ b/config/postal.defaults.yml @@ -31,6 +31,7 @@ main_db: password: <%= ENV.fetch('MAIN_DB_PASSWORD', '') %> database: <%= ENV.fetch('MAIN_DB_DATABASE', 'postal') %> pool_size: <%= ENV.fetch('MAIN_DB_POOL_SIZE', '5') %> + encoding: <%= ENV.fetch('MAIN_DB_ENCODING', 'utf8mb4') %> message_db: host: <%= ENV.fetch('MESSAGE_DB_HOST', '127.0.0.1') %> diff --git a/lib/postal/config.rb b/lib/postal/config.rb index c139960..b0c8e2a 100644 --- a/lib/postal/config.rb +++ b/lib/postal/config.rb @@ -86,14 +86,6 @@ module Postal end end - def self.database_url - if config.main_db - "mysql2://#{CGI.escape(config.main_db.username.to_s)}:#{CGI.escape(config.main_db.password.to_s)}@#{config.main_db.host}:#{config.main_db.port}/#{config.main_db.database}?reconnect=true&encoding=#{config.main_db.encoding || 'utf8mb4'}&pool=#{config.main_db.pool_size}" - else - "mysql2://root@localhost/postal" - end - end - def self.logger_for(name) @loggers ||= {} @loggers[name.to_sym] ||= begin diff --git a/lib/postal/message_db/mysql.rb b/lib/postal/message_db/mysql.rb index f4d7680..dd0f463 100644 --- a/lib/postal/message_db/mysql.rb +++ b/lib/postal/message_db/mysql.rb @@ -7,7 +7,13 @@ module Postal # it would be undesirable as we'd just end up with lots of connections. def self.new_client - Mysql2::Client.new(host: Postal.config.message_db.host, username: Postal.config.message_db.username, password: Postal.config.message_db.password, port: Postal.config.message_db.port, reconnect: true, encoding: Postal.config.message_db.encoding || "utf8mb4") + Mysql2::Client.new( + host: Postal.config.message_db.host, + username: Postal.config.message_db.username, + password: Postal.config.message_db.password, + port: Postal.config.message_db.port, + encoding: Postal.config.message_db.encoding || "utf8mb4" + ) end @free_clients = []