bockdavidson
bockdavidson

Reputation: 2683

Ruby on Rails PG::ConnectionBad

I'm trying to deploy my app, when I run the command

rails server -b $IP -p $PORT

I get an errr

PG::ConnectionBad

could not connect to server: Connection refused Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Extracted source (around line #56):

### Convenience alias for PG::Connection.new.
def self::connect( *args )
    return PG::Connection.new( *args )
end

my database.yml is

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5

development:
  <<: *default
  database: db/development.sqlite3

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

======= UPDATE =====

I now get an error that says ActiveRecord::NoDatabaseError, FATAL: database "sale_development" does not exist

when i updated database.yml to

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5

development:
  adapter: postgresql
  encoding: unicode
  database: sale_development
  pool: 5

test: &test
  adapter: postgresql
  encoding: unicode
  database: sale_test
  pool: 5

production:
  adapter: postgresql
  encoding: unicode
  database: sale_production
  pool: 5
  host: localhost
  username: sale
  password: <%= ENV['SALE_DATABASE_PASSWORD'] %>

=> Booting Puma ckout' web-console (3.5.1) lib/web_console/middleware.rb:135:in call_app'actionpack (5.1.1) lib/action_dispatch/middleware/request_id.rb:25:incall' rack (2.0.3) lib/rack/method_override.rb:22:in call' rack (2.0.3) lib/rack/runtime.rb:22:incall' activesupport (5.1.1) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in call' puma (3.8.2) lib/puma/thread_pool.rb:120:inblock in spawn_thread' ActiveRecord::StatementInvalid: PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompat17:in create' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:ineach' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:3Tasks: TOP => db:create ActiveRecord::StatementInvalid: PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompat17:in create' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:ineach' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:in each_current_configuration' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:136:increate_current' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/railties/databases.rake:2/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in eval' /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/migration.rb:1007:in up' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:ineach' /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:3/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.1.1/lib/active_support/dependencies/interlock./usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:in each'/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:303:ineach_current_configuration'/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/tasks/database_tasks.rb:136:in create_current'/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.1.1/lib/active_record/railties/databases.rake:27:inblock (2 levels) in '/usr/local/rvm/gems/ruby-2.3.0/gems/rake-12.0.0/exe/rake:27:in <top (required)>' /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:ineval' /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `' Tasks: TOP => db:create (See full trace by running task with --trace)

===== UPDATE ====

Gemfile

 source 'https://rubygems.org'

 git_source(:github) do |repo_name|
   repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
   "https://github.com/#{repo_name}.git"
 end


 # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
 gem 'rails', '~> 5.1.1'
 # Use sqlite3 as the database for Active Record
 gem 'sqlite3'
 gem 'pg'
 # Use Puma as the app server
 gem 'puma', '~> 3.7'
 # Use SCSS for stylesheets
 gem 'sass-rails', '~> 5.0'
 # Use Uglifier as compressor for JavaScript assets
 gem 'uglifier', '>= 1.3.0'
 # See https://github.com/rails/execjs#readme for more supported runtimes
 # gem 'therubyracer', platforms: :ruby

 # Use CoffeeScript for .coffee assets and views
 gem 'coffee-rails', '~> 4.2'
 # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
 gem 'turbolinks', '~> 5'
 # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 3.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
gem 'bootstrap-sass'
gem "paperclip", "~> 5.0.0"
gem 'devise', '~> 4.3'
gem 'will_paginate', '~> 3.0'


# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
   # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Upvotes: 3

Views: 5341

Answers (1)

widjajayd
widjajayd

Reputation: 6253

My opinion it showing the connection with sqlite3, if it's production then you have to put the user name and password

this is for your reference if using postgresql

development:
  adapter: postgresql
  encoding: unicode
  database: your_database_name
  pool: 5

test: &test
  adapter: postgresql
  encoding: unicode
  database: your_database_name_test
  pool: 5

production:
  adapter: postgresql
  encoding: unicode
  database: your_database_name_production
  pool: 5
  host: localhost
  username: some_user_name
  password: some_password

Upvotes: 0

Related Questions