Search code examples
ruby-on-railsrakeabort

rake db:migrate failed


I've just started to study Rails. When I try "rake db:migrate", the following error occured.

rake aborted! FATAL: Peer authentication failed for user "kt1"

it seems there's something wrong with database.yml but I have no idea how to solve. Please give me an advice.


Thank you very much for your comment and edit. I'm using postgresql (0.13.2). My environment is as follows. Ubuntu 11.10 Ruby 1.8.7 Rails 3.2.3 gem 1.8.21

database.yml as below.


# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
#   gem install pg
# On Mac OS X with macports:
#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
#   gem install pg
#       Choose the win32 build.
#       Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
development:
  adapter: postgresql
  encoding: unicode
  database: kt1_development
  pool: 5
  username: kt1
  password:

  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # The server defaults to notice.
  #min_messages: warning

# 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:
  adapter: postgresql
  encoding: unicode
  database: kt1_test
  pool: 5
  username: kt1
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: kt1_production
  pool: 5
  username: kt1
  password:

I also tried with username in blank. Then the error comes to

rake aborted!
FATAL:  role "kenji" does not exist

(kenji is my username on Ubuntu.)


Solution

  • You need to first create the user kt1 , then create the database and give the user permission to it.

    There is a way to let rails create the user and database, but in postgresql, it is best to do it by hand (IMHO)