0

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

我使用 sqlite3 进行开发,但在推送到 heroku 之前,我决定切换到 pg(使用 ubuntu),它在我的本地开发环境中运行良好。

然后我推到 Heroku 我不断得到一个空白包,如下:

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

编辑:我检查了日志,实际上是数据库导致了问题,我表中的输入没有被推入 heroku 并且我的应用程序正在崩溃(我知道糟糕的设计)

4

2 回答 2

0

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

heroku run rake db:migrate
heroku restart

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

 gem install taps   
 heroku db:push

编辑: 尝试这种替代方法:

heroku db:push postgres://user:pass@localhost/dbname
于 2012-10-04T02:30:36.867 回答
0

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

假设您在盒子上具有 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. 那也没关系。

psqlshell 中,您可以给DB用户postgres一个密码:

ALTER USER postgres PASSWORD 'newPassword';

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

于 2012-10-05T06:24:35.277 回答