Ruby on rails 推到Heroku会出现错误:“很抱歉,出了点问题。”

Ruby on rails 推到Heroku会出现错误:“很抱歉,出了点问题。”,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我已经做了一两个小时了,但似乎不知道问题出在哪里 我使用sqlite3进行开发,但在使用heroku之前,我决定使用ubuntu切换到pg,并且它在本地开发环境中运行良好 然后我推到Heroku,我一直得到一个空白的面包,上面写着: We're sorry, but something went wrong. 这真的没用。我是否可以通过heroku访问生产日志文件 另外,我最好的猜测是它与bd有关,可能它没有正确加载。我检查了我的heroku帐户并单击以下加载项: Heroku Postgre

我已经做了一两个小时了,但似乎不知道问题出在哪里

我使用sqlite3进行开发,但在使用heroku之前,我决定使用ubuntu切换到pg,并且它在本地开发环境中运行良好

然后我推到Heroku,我一直得到一个空白的面包,上面写着:

We're sorry, but something went wrong.
这真的没用。我是否可以通过heroku访问生产日志文件

另外,我最好的猜测是它与bd有关,可能它没有正确加载。我检查了我的heroku帐户并单击以下加载项:

Heroku Postgres开发人员:Olive

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

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

编辑:

我可以通过以下方式检查heroku上的数据库:

heroku pg:psql
从 然而,我的数据库中没有条目,我的开发数据库中也有条目,但显然它并没有传输到heroku,有没有办法用开发环境中的条目推送或覆盖heroku数据库

凯尔: 我尝试了taps操作,未能连接到数据库:

  Sequel::DatabaseConnectionError -> PG::Error: FATAL:  password authentication fai
led for user "pc"
FATAL:  password authentication failed for user "pc" however I get the error:
pc在我的ubuntu机器上使用我的pg用户名,但是我的密码是可以的,因为它在我的本地机器上工作

mydatabase.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

编辑:我检查了日志,事实上是数据库导致了问题,我表中的条目没有被推送到heroku中,并且由于数据库为空,我的应用程序正在崩溃。我知道设计不好,您可能需要迁移生产数据库

heroku run rake db:migrate
heroku restart
如果需要将数据导入heroku数据库,请参阅

编辑: 尝试以下替代方法:

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

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

假设您对该框具有root访问权限,则可以执行以下操作:

sudo -u postgres psql
如果数据库postgres not exists error失败,那么您很可能不在Ubunutu或Debian服务器上:-在这种情况下,只需将template1添加到命令:

sudo -u postgres psql template1
这些命令中的任何一个都会失败,并出现错误psql:FATAL:用户pc的密码身份验证失败,然后检查文件/etc/postgresql/8.4/main/pg_hba.conf:必须有这样一行作为第一个非注释行:

local   all         postgres                          ident
对于较新版本的PostgreSQL,ident实际上可能是对等的。也没关系

在psql shell中,您可以为DB用户postgres提供密码:

ALTER USER postgres PASSWORD 'newPassword';

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

0行还是0表?您的表在吗?当我浏览heroku仪表板时,它会在pg表的统计信息下显示:0但当我通过控制台访问我的数据库时,我可以看到我的所有数据库,但当我查询它们时,请从x选择*;我得到了正确的模式,但rows=0请使用heroku日志检查日志。
ALTER USER postgres PASSWORD 'newPassword';