fix: Specify external db with non-standard port (#2711)

POSTGRES_PORT was not taking effect if provided separately
instead of using DATABASE_URL. This adds support for using
databases running on non-standard ports.

#1145
#1147

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This commit is contained in:
Vishnu Narayanan 2021-07-28 19:36:51 +05:30 committed by GitHub
parent 7662fdce47
commit 223385d134
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 13 additions and 7 deletions

View file

@ -21,7 +21,8 @@ class Account < ApplicationRecord
include Featurable include Featurable
DEFAULT_QUERY_SETTING = { DEFAULT_QUERY_SETTING = {
flag_query_mode: :bit_operator flag_query_mode: :bit_operator,
check_for_column: false
}.freeze }.freeze
ACCOUNT_SETTINGS_FLAGS = { ACCOUNT_SETTINGS_FLAGS = {

View file

@ -39,7 +39,9 @@ class Channel::WebWidget < ApplicationRecord
has_flags 1 => :attachments, has_flags 1 => :attachments,
2 => :emoji_picker, 2 => :emoji_picker,
:column => 'feature_flags' :column => 'feature_flags',
:check_for_column => false
enum reply_time: { in_a_few_minutes: 0, in_a_few_hours: 1, in_a_day: 2 } enum reply_time: { in_a_few_minutes: 0, in_a_few_hours: 1, in_a_day: 2 }
def name def name

View file

@ -2,7 +2,8 @@ module Featurable
extend ActiveSupport::Concern extend ActiveSupport::Concern
QUERY_MODE = { QUERY_MODE = {
flag_query_mode: :bit_operator flag_query_mode: :bit_operator,
check_for_column: false
}.freeze }.freeze
FEATURE_LIST = YAML.safe_load(File.read(Rails.root.join('config/features.yml'))).freeze FEATURE_LIST = YAML.safe_load(File.read(Rails.root.join('config/features.yml'))).freeze

View file

@ -23,7 +23,8 @@ class NotificationSetting < ApplicationRecord
belongs_to :user belongs_to :user
DEFAULT_QUERY_SETTING = { DEFAULT_QUERY_SETTING = {
flag_query_mode: :bit_operator flag_query_mode: :bit_operator,
check_for_column: false
}.freeze }.freeze
EMAIL_NOTIFICATION_FLAGS = ::Notification::NOTIFICATION_TYPES.transform_keys { |key| "email_#{key}".to_sym }.invert.freeze EMAIL_NOTIFICATION_FLAGS = ::Notification::NOTIFICATION_TYPES.transform_keys { |key| "email_#{key}".to_sym }.invert.freeze

View file

@ -3,6 +3,7 @@ default: &default
encoding: unicode encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: <%= ENV.fetch('POSTGRES_HOST', 'localhost') %> host: <%= ENV.fetch('POSTGRES_HOST', 'localhost') %>
port: <%= ENV.fetch('POSTGRES_PORT', '5432') %>
development: development:
<<: *default <<: *default

View file

@ -5,6 +5,6 @@ require 'uri'
if !ENV['DATABASE_URL'].nil? && ENV['DATABASE_URL'] != '' if !ENV['DATABASE_URL'].nil? && ENV['DATABASE_URL'] != ''
uri = URI(ENV['DATABASE_URL']) uri = URI(ENV['DATABASE_URL'])
puts "export POSTGRES_HOST=#{uri.host} POSTGRES_PORT=#{uri.port} POSTGRES_USERNAME=#{uri.user}" puts "export POSTGRES_HOST=#{uri.host} POSTGRES_PORT=#{uri.port} POSTGRES_USERNAME=#{uri.user}"
else elif ENV['POSTGRES_PORT'].nil? || ENV['POSTGRES_PORT'] == ''
puts "export POSTGRES_PORT=5432" puts "export POSTGRES_PORT=5432"
end end