Rails and PostgreSQL: Role postgres does not exist

前端 未结 13 2160
一整个雨季
一整个雨季 2020-12-07 07:51

I have installed PostgreSQL on my Mac OS Lion, and am working on a rails app. I use RVM to keep everything separate from my other Rails apps.

For some reason when I

相关标签:
13条回答
  • 2020-12-07 08:47

    Actually, for some unknown reason, I found the issue was actually because the postgresql role hadn't been created.

    Try running:

    createuser -s -r postgres
    

    Note that roles are the way that PostgreSQL maintains database permissions. If there is no role for the postgres user, then it can't access anything. The createuser command is a thin wrapper around the commands CREATE USER, CREATE ROLE, etc.

    0 讨论(0)
  • 2020-12-07 08:50

    After a bunch of installing and uninstalling of Postgres, here's what now seems to work consistently for me with Os X Mavericks, Rails 4 and Ruby 2.

    1. In the database.yml file, I change the default usernames to my computer's username which for me is just "admin".

    2. In the command line I run rake db:create:all

    3. Then I run rake db:migrate

    4. When I run the rails server and check the local host it says "Welcome aboard".

    0 讨论(0)
  • 2020-12-07 08:54

    In the Heroku documentation; Getting started whit rails 4, they say:

    You will also need to remove the username field in your database.yml if there is one so: In file config/database.yml remove: username: myapp

    Then you just delete that line in "development:", if you don't pg tells to the database that works under role "myapp"

    This line tells rails that the database myapp_development should be run under a role of myapp. Since you likely don’t have this role in your database we will remove it. With the line remove Rails will try to access the database as user who is currently logged into the computer.

    Also remember to create the database for development:

    $createdb myapp_development
    

    Repleace "myapp" for your app name

    0 讨论(0)
  • 2020-12-07 08:54

    Could you have multiple local databases? Check your database.yml and make sure you are hitting the pg db that you want. Use rails console to confirm.

    0 讨论(0)
  • 2020-12-07 08:55

    Recently i got this problem immediately after installing postgres. If it comes immediately after installation, you might be missing the default user, postgres. In that case, you can create default user postgres using below command.

    createuser -s -U $USER

    Ex: createuser -s -U $USER
    enter your required role name: postgres
    enter password for your the user: 
    

    It will prompt you to enter required database role name and password Once you complete the process, you can login to the postgres console using below command

    psql -U 'your_database_name'
    

    Ex: psql -U postgres
    Here, You need to enter the password if you have given any, while creating the user.

    Hope it helps :)

    0 讨论(0)
  • 2020-12-07 08:55

    The installation procedure creates a user account called postgres that is associated with the default Postgres role. In order to use Postgres, you can log into that account. But if not explicitly specified the rails app looks for a different role, more particularly the role having your unix username which might not be created in the postgres roles.

    To overcome that, you can create a new role, first by switching over to the default role postgres which was created during installation

    sudo -i -u postgres

    After you are logged in to the postgres account, you can create a new user by the command:

    createuser --interactive

    This will prompt you with some choices and, based on your responses, execute the correct Postgres commands to create a user.

    Pass over a role name and some permissions and the role is created, you can then migrate your db

    0 讨论(0)
提交回复
热议问题