我已经在这一两个小时了,但似乎无法弄清楚问题可能是什么。
我正在使用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并且有一个空数据库我的应用程序崩溃了(我知道设计不好)
答案 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有效密码,它也会很高兴。 : - )