Rails error 500: «Извините, но что-то пошло не так» - PullRequest
6 голосов
/ 09 ноября 2011

После трех вечеров по этой проблеме и прочтения всех постов об этом я наконец-то должен задать этот вопрос!

Я хочу развернуть самое простое приложение Rails для Heroku:

rails new test_appli
cd test_appli
git init
git add .
git  commit -m "initial commit"
heroku create
git push heroku master

Все хорошо, приложение хорошо работает на Heroku. После этого я создам базу данных SQLite3:

rails generate scaffold User name:string email:string
rake db:migrate

Все нормально на локальной машине. Я хорошо вижу localhost:3000/users. Тогда я хочу поставить БД на Heroku. Сначала я изменяю свой Gemfile:

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

Затем я посылаю все это Героку:

git init
git add .
git  commit -m "with Database"
git push heroku master
heroku rake db:migrate

Тогда в пакете ошибок нет, все ок, БД отправлена, но страница heroku.com/users выдает ошибку

Rails 500, "Извините, но что-то пошло не так"

Я не знаю больше, что делать. Вы можете мне помочь?

Ответы [ 7 ]

7 голосов
/ 09 ноября 2011

Я подозреваю, что вы пытаетесь развернуть приложение Rails 3.1 в бамбуковом стеке (heroku создает значения по умолчанию для бамбукового стека 1.9.2 и не запускает Rails 3.1 из коробки). Стек Cedar намного лучше подходит для сайтов Rails 3.1 -

попробовать

heroku create --stack cedar

при создании приложения на Heroku и его повторной загрузке. Также обратите внимание, что ваша команда рейка на Heroku станет

heroku run rake db:migrate
3 голосов
/ 10 февраля 2012

Do:

heroku run rake db: schema: load

У меня была такая же проблема.У меня работает после git push heroku master

0 голосов
/ 22 марта 2013

Привет, @redronin, спасибо, что помог мне найти способ подключения к моей базе данных postgres на Heroku, однако, как новичок в Heroku и postgresql, мне пришлось перепроектировать, что такое «бла». Поэтому я решил, что сломаюсь, чтобы помочь другим, как ты помог мне.

Postgres: // [пользователь]: [пароль] @ [имя_сервер] .compute-1.amazonaws.com / [база]

0 голосов
/ 10 ноября 2011

У вас есть добавленный экземпляр базы данных heroku на 5 МБ? Когда вы создаете приложение heroku (на кедре), оно не обязательно создает базу данных автоматически.

airlift:projects  $ heroku create --stack cedar testapp9
Creating testapp9... done, stack is cedar
http://testapp9.herokuapp.com/ | git@heroku.com:testapp9.git

airlift:projects  $ heroku addons --app testapp9 
logging:basic
releases:basic

Когда вы просматриваете свою конфигурацию heroku, вы ничего не получаете:

конфиг герои

airlift:projects  $ heroku config --app testapp9
airlift:projects  $

Чтобы добавить базу данных:

дополнения heroku: добавить shared-базу данных: 5mb

airlift:projects  $ heroku addons:add shared-database:5mb --app testapp9
-----> Adding shared-database:5mb to testapp9... done, v3 (free)
airlift:projects  $ heroku config
No app specified.
Run this command from an app folder or specify which app to use with --app <app name>
airlift:projects  $ heroku config --app testapp9
DATABASE_URL        => postgres://blah:blah@blah.compute-1.amazonaws.com/blah
SHARED_DATABASE_URL => postgres://blah:blah@blah.compute-1.amazonaws.com/blah
airlift:projects  $ 

Тогда вы сможете перенести свою базу данных.

0 голосов
/ 09 ноября 2011

Какая версия Rails?Можете ли вы попробовать создать приложение, работающее в стеке Cedar?

heroku create myapp --stack cedar

Если приложение запущено в Cedar, вам нужно немного изменить команды, например:

heroku run rake db:migrate

Inв любом случае вам действительно нужно проверить свои журналы, потому что ваша проблема может быть связана не с базой данных, а с активами.

0 голосов
/ 09 ноября 2011

Зачем вам использовать камень pg в вашей производственной группе, но камень sqlite3 в вашей группе разработчиков?Мне кажется, что ваша проблема, скорее всего, связана с тем, что вы разрабатываете с другой базой данных, чем вы используете в производственной среде.Если бы я был вами, я бы придерживался одного из них, что значительно облегчило бы отладку.

Если вы действительно хотите / должны получить приложение, работающее как можно скорее, просто запустите его в работе с sqlite ...Gemfile:

gem 'rails'
gem 'sqlite3'

Кроме того, можно быстро определить причину ошибки при запуске heroku logs с консоли unix.

0 голосов
/ 09 ноября 2011

Не выполняйте git init во втором наборе команд - вам нужно только один раз инициализировать Git-репо.

Кроме того, это выглядит нормально - вы видите где-нибудь ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...