推向Heroku会出现错误“我们很抱歉,但出了点问题。”

时间:2012-10-04 02:24:49

标签: ruby-on-rails ruby-on-rails-3

我已经在这一两个小时了,但似乎无法弄清楚问题可能是什么。

我正在使用sqlite3 for dev但是在推送到heroku之前我决定切换到pg(使用ubuntu),它在我的本地开发环境中工作正常。

然后我推到Heroku我继续得到一个空白的bage跟随:

We're sorry, but something went wrong.

'这没有什么帮助。 是否有可以通过heroku访问的生产日志文件?

另外我最好的猜测是它与bd有关,也许它没有正确加载。我检查了我的heroku帐户,然后点击以下插件:

Heroku Postgres Dev :: Olive

现在我的数据库表示大小为6mb但是表0,这是有关的。 但是我不知道如何在heroku上查询我的数据库,并且网站上似乎没有界面来查看我的数据库。 db不会自动推送“git push heroku master”

无论如何,db是我目前最好的猜测,但我无法确定,因为我没有日志,所以我不知道该怎么办

编辑:

我能够使用以下方法检查heroku上的数据库:

heroku pg:psql
来自https://devcenter.heroku.com/articles/heroku-postgresql

但是,我的数据库中没有任何输入,我的开发数据库中有输入,但显然它没有转移到heroku,有没有办法用你的开发环境中的那个推送(或覆盖)你的heroku数据库?

凯尔: 我尝试了点击的东西,无法连接到数据库:

  Sequel::DatabaseConnectionError -> PG::Error: FATAL:  password authentication fai
led for user "pc"
FATAL:  password authentication failed for user "pc" however I get the error:

在我的ubuntu机器上使用我的用户名pg,但是我的密码正常,因为它在我的本地机器上运行

我的database.yml文件

development:
  adapter: postgresql
  encoding: utf8
  reconnect: false
  database: someapp_development
  pool: 5
  username: pc
  password: ***

# 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: utf8
  reconnect: false
  database: someapp_development
  pool: 5
  username: pc
  password: ***

production:
  adapter: postgresql
  encoding: utf8
  reconnect: false
  database: someapp_development
  pool: 5
编辑:我检查了日志,它实际上是导致问题的数据库,我的表中的enteries没有被推入heroku并且有一个空数据库我的应用程序崩溃了(我知道设计不好)

2 个答案:

答案 0 :(得分:0)

您可能需要迁移生产数据库

heroku run rake db:migrate
heroku restart

如果您需要将数据导入您的heroku数据库,请参阅this

 gem install taps   
 heroku db:push

修改 尝试这种替代方法:

heroku db:push postgres://user:pass@localhost/dbname

答案 1 :(得分:0)

如果我没记错的话,用户postgres默认情况下在Ubuntu上没有设置DB密码。这意味着,当您使用postgres OS用户帐户时,您只能登录该帐户。

假设您可以在框中拥有root访问权限:

sudo -u postgres psql

如果失败了database "postgres" does not exists error,那么你很可能不在Ubunutu或Debian服务器上:-)在这种情况下,只需在命令中添加template1

sudo -u postgres psql template1

这些命令中的任何一个都失败并显示错误psql: FATAL: password authentication failed for user "pc",然后检查文件/etc/postgresql/8.4/main/pg_hba.conf:必须有一行这样的行作为第一个非注释行:

local   all         postgres                          ident

对于较新版本的PostgreSQL,ident实际上可能是peer。那也没关系。

psql shell中,您可以为数据库用户postgres提供密码:

ALTER USER postgres PASSWORD 'newPassword';

现在您应该能够为数据库超级用户提供pgAdmin有效密码,它也会很高兴。 : - )