0

我正在尝试使用 Python/Django 在 Heroku 上构建一个 webapp,我只是按照教程设置了一个 Django 项目并将其推送到 Heroku。但是,我什至无法使用普通的 Django “它成功了!” 屏幕。当然,那是因为当我检查时heroku ps,从来没有任何进程在运行。没有Procfile,但根据教程,这对于 Django 应用程序来说无关紧要。

当我运行时heroku run python manage.py runserver,出现以下错误:

Unhandled exception in thread started by <bound method Command.inner_run of <dja
ngo.contrib.staticfiles.management.commands.runserver.Command object at 0x1ff819
0>>
Traceback (most recent call last):
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/com
mands/runserver.py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/bas
e.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/val
idation.py", line 103, in get_validation_errors
    connection.validation.validate_field(e, opts, f)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/mysql/v
alidation.py", line 14, in validate_field
    db_version = self.connection.get_server_version()
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/mysql/b
ase.py", line 411, in get_server_version
    self.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/mysql/b
ase.py", line 387, in _cursor
    self.connection = Database.connect(**kwargs)
  File "/app/.heroku/venv/lib/python2.7/site-packages/MySQLdb/__init__.py", line
 81, in Connect
    return Connection(*args, **kwargs)
  File "/app/.heroku/venv/lib/python2.7/site-packages/MySQLdb/connections.py", l
ine 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1044, "Access denied for user '<user>
'@'%' to database 'heroku_<####################>?reconnect=true'")

我确实已经将 my 设置DATABASE_URLCLEARDB_DATABASE_URL. 另外,在 Djangosettings.py中,我按照说明添加了:

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

任何帮助将不胜感激。

4

1 回答 1

2

该特定错误在调用 ClearDB 后得到修复。事实证明,这?reconnect=true仅适用于 Rails 应用程序,应该从DATABASE_URLDjango 应用程序中删除。

于 2012-06-04T16:23:48.363 回答