推送到Heroku后,“用户密码验证失败”

时间:2012-08-16 05:41:30

标签: django postgresql heroku

我跟着heroku documentation安装了一个django应用程序,起初工作正常。一天后,我将一些更改推送到服务器。之后,我根本无法访问该应用:FATAL: password authentication failed for user "drjstoymyqyarj"

我甚至无法再同步数据库:

$ heroku run python manage.py syncdb
Running `python manage.py syncdb` attached to terminal... up, run.1
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs
    cursor = connection.cursor()
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/__init__.py", line 306, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 177, in _cursor
    self.connection = Database.connect(**conn_params)
  File "/app/.heroku/venv/lib/python2.7/site-packages/psycopg2/__init__.py", line 179, in connect
    connection_factory=connection_factory, async=async)
psycopg2.OperationalError: FATAL:  password authentication failed for user "drjstoymyqyarj"
FATAL:  password authentication failed for user "drjstoymyqyarj"

我使用了heroku doc中推荐的数据库设置:

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

当我将代码推送到服务器后检查日志时,有一个我之前没有注意到的可疑Process exited with status 143。也许这与它有关?

$ heroku logs
heroku[web.1]: State changed from up to starting
heroku[web.1]: Stopping all processes with SIGTERM
heroku[web.1]: Starting process with command `python ./manage.py runserver 0.0.0.0:41048 --noreload`
app[web.1]: Validating models...
app[web.1]: 
app[web.1]: 0 errors found
app[web.1]: Django version 1.4, using settings 'ClosetList.settings'
app[web.1]: Development server is running at http://0.0.0.0:41048/
app[web.1]: Quit the server with CONTROL-C.
heroku[web.1]: Process exited with status 143
heroku[web.1]: State changed from starting to up

[编辑]
heroku pg:psql相同的错误消息。然而,我可以使用heroku run python manage.py shell打开一个Django shell,但我无法访问其中的任何数据(当然也是同样的错误)。
[/编辑]

对此有任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:11)

运行

heroku config

并查看是否配置了超过2个heroku dbs,并查看DATABASE_URL是否指向您配置的数据库。如果没有,那么您可以通过运行以下命令将数据库提升为默认DATABASE_URL:

heroku pg:promote HEROKU_POSTGRESQL_GREEN

HEROKU_POSTGRESQL_GREEN是您的数据库名称,您将在配置中看到HEROKU_POSTGRESQL_GREEN_URL。

将配置的数据库升级为默认数据库后,即可开始使用。