2015-06-16 5 views
0

Я использовал sqlite gem для моего проекта рельсов, и так как мне пришлось положить приложение на Heroku, и Heroku не поддерживает sqlite, я добавил pg gem в мой Gemfile.sqlite issue with heroku

gem 'pg', '0.17.1' 

Но теперь я не могу запустить проект локально на своей машине.

Указанный «sqlite3» для адаптера базы данных, но драгоценный камень не загружен. Добавьте gem 'sqlite3' в свой Gemfile (и убедитесь, что его версия минимальна для ActiveRecord).

Я получаю это.

Пожалуйста, помогите.

+0

Пожалуйста отправьте ваш 'Gemfile' – Pavan

+0

@Suraj: Пожалуйста, обратитесь мой ответ на эта ссылка http://stackoverflow.com/questions/30846779/not-able-to-create-staging-instance-on-heroku/30847128#30847128. –

+0

@Suraj: Надеюсь, это сработает для вас. –

ответ

3

Указанный «sqlite3» для адаптера базы данных, но драгоценный камень не загружен. Добавьте gem 'sqlite3' в свой Gemfile (и убедитесь, что его версия находится на уровне , требуемом ActiveRecord).

Добавить gem 'sqlite3', group: :development в свой Gemfile и сделать bundle install.

А также вы должны положить pg gem в производственной группы, как это для вас, чтобы избежать дальнейших конфликтов в местном

#Gemfile 
group :production do 
    gem 'pg', '0.17.1' 
end 

ИЛИ

gem 'pg', '0.17.1', group: :production 

И

gem 'sqlite3', group: :development 

Update # 1

А также, вы должны изменить ваши database.yml указать различные адаптеры для development и production как этот

#database.yml 
development: 
    adapter: sqlite3 
    database: your_db 
    username: your_username 
    password: your_pass 
    ----- 
    ----- 

production: 
    adapter: postgresql 
    database: your_production_db 
    username: your_production_username 
    password: your_production_pass 
    ------ 
    ------ 

Update # 2

FATAL: аутентификация Peer Сбой пользователя "Postgres"

Если установить пароль на основе аутентификацию, то вам нужно сделать ниже шаги

1.Откройте файл pg_hba.conf для Ubuntu будет в /etc/postgresql/9.x/main и изменить эту строку:

local all    postgres        peer 

к

local all    postgres        md5 

2.Restart сервер

sudo service postgresql restart 

3.Login в psql и задать свой пароль

psql -U postgres 

ALTER USER postgres with password 'your-pass'; #as in your database.yml 
+0

Не работает локально даже после этого – Suraj

+0

FATAL: Ошибка аутентификации сверстников для пользователя «postgres». получать этот вопрос – Suraj

+0

Теперь я получаю паролю не удалось проблема:/ – Suraj

0

В вашем database.yml, изменение адаптера: sqlite3 адаптер: PostgreSQL

0

gem 'sqlite' Заменить с gem 'pg' в вашем Gemfile.

удалить ваш Gemfile.lock и запустить bundle update

затем вставьте его в вашем конфиге/database.yml

development: 
    adapter: postgresql 
    encoding: unicode 
    database: nameofyourapp_development 
    pool: 5 
    username: username 
    password: password 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: discuss_test 
    pool: 5 
    username: username 
    password: password 

заменить имя пользователя и пароль в соответствии с конфигурацией. Для моего, имя пользователя - postgres и пароль 1234.

Heroku не нуждается в вас, чтобы определить производственные настройки в database.yml. Он будет настроен автоматически после нажатия на ваше приложение.

Если вы получаете FATAL: Peer authentication failed for user "postgres"

проблема в файле /etc/postgresql/9.3/main/pg_hba.conf. Эта линия:

local all    postgres        peer 

Должно быть

local all    postgres        md5 

Вам нужно перезагрузить службу PostGreSQL после изменения этой /etc/init.d/postgresql reload

+0

FATAL: Ошибка аутентификации сверстников для пользователя «postgres» получение этого. – Suraj