2017-01-09 3 views
1

Новое в Rails и попытка получить локальную среду разработки и запуск сайта, который был клонирован с git.New Rails install: ActiveRecord :: NoDatabaseError FATAL: роль не существует

Когда я начинаю Postgres и типа «рельсы с» в терминале под моим проектом, чтобы запустить сервер, я получаю удар следующее:

=> Booting WEBrick 
=> Rails 4.2.0 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
[2017-01-08 20:43:24] INFO WEBrick 1.3.1 
[2017-01-08 20:43:24] INFO ruby 2.2.6 (2016-11-15) [i386-mingw32] 
[2017-01-08 20:43:24] INFO WEBrick::HTTPServer#start: pid=1036 port=3000 




Started GET "/" for ::1 at 2017-01-08 20:43:29 -0500 
Started GET "/" for ::1 at 2017-01-08 20:43:29 -0500 

ActiveRecord::NoDatabaseError (FATAL: role "username" does not exist 
): 

Если я пытаюсь запустить

rake db:create 

Я получаю

FATAL: role "username" does not exist 
C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:661:in `rescue in 
..... 

В принципе то же самое с рейк-дБ: мигрировать. Все миграции сайта в \ сайтов \ имя_сайта \ имя_сайта \ дб \ мигрировать

Если я пытаюсь создать пользователя

psql -U username 

Я сразу же вернулся

psql: FATAL: role "username" does not exist 

Я все это время ломал голову.

Я нахожусь на коробке Windows. Есть идеи?

+1

Это зависит от того, как база данных PSQL настроена. Вы можете удалить спецификацию 'username 'и' password' из 'database.yml' и заставить ее работать? Если нет, знаете ли вы, что должно быть имя пользователя и пароль вашей базы данных _should_? –

+0

Вероятно, это проблема с разрешением. Я бы рекомендовал использовать Docker или какой-то хост виртуальной машины, чтобы запустить некоторый вкус linux и использовать его для изучения рельсов. У вас будет гораздо меньше головных болей и вы сможете следить за учебниками, которые предполагают, что вы используете Bash и настоящую операционную систему. – max

+0

Удалено имя пользователя и пароль из профиля 'development' в разделе database.yml. Также есть имя пользователя и пароль в разделе «Производство» в том же файле, хотя они настроены совсем по-другому. например: 'развитие: адаптер: PostgreSQL кодирования: utf8 база данных: app_development бассейн: 5 имя пользователя: имя пользователя пароль:' против производство: <<: * по умолчанию база данных: appname_production имя пользователя: appusername пароль: <% = ENV ['APPNAME_DATABASE_PASSWORD']%> Не знаете, что было создано с помощью другого, чем он первоначально построил его в OSX. – user1318340

ответ

0

Аналогичным образом обновите свой database.yml.

default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 

development: 
    <<: *default 
    database: 'some_name' 
    username: 'postgres' 
    password: 'postgres' 
    host: localhost 
    port: 5432 

Postgresql при установке поставляется с невыполнением role: 'postgres' с Password: 'postgres'. Если вы не хотите его использовать, вы можете создать роль и предоставить им все права.

CREATE ROLE new_user WITH CREATEDB CREATEROLE SUPERUSER; 

Затем обновите database.yml с вновь созданной роли.

Надеюсь, это вам поможет.

0
default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 

development: 
    <<: *default 
    database: 'some_name' #database name 
    username: 'postgres' #postgres username 
    password: 'postgres' #postgres password 
    host: localhost 
    port: 5432 

rake db:create #to create the db in postgres 
rake db:migrate #to run migration(if any) in db/migrate folder 
rake db:seed #to run seed file in db/seed.rb 
1

Во-первых, вы должны создать свою базу данных и создать суперпользователя в PSQL. Перейдите на psql:

sudo -u postgres psql 

Тогда вы можете создать пользователя с паролем. Например:

create user username with password '12345678'; 

Рельсы будут управлять базой данных с помощью этого пользователя. Таким образом, мы должны создать суперпользователя тоже:

alter user username with superuser; 

После того, как вы создали суперпользователя, вы можете выйти из PSQL. Те же данные должны быть в вашем/config/database.YML файл:

development: 
    <<: *default 
    database: database_name 
    username: username 
    password: '12345678' 

В прикладном repositroy создать базу данных с помощью граблей:

rake db:create 
Смежные вопросы