【发布时间】:2015-08-29 05:42:11
【问题描述】:
我正在尝试在 Heroku (https://devcenter.heroku.com/articles/getting-started-with-python#introduction) 进行 Python 入门练习。我只是按照说明并使用教程中提供的 git 存储库。但是当我转到使用数据库功能的 Web 应用程序的 /db 页面时,我得到了这个错误跟踪:
Environment:
Request Method: GET
Request URL: http://localhost:5000/db
Django Version: 1.8.1
Python Version: 2.7.5
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Traceback:
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/hello/views.py" in db
14. greeting.save()
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/models/base.py" in save
710. force_update=force_update, update_fields=update_fields)
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/models/base.py" in save_base
735. with transaction.atomic(using=using, savepoint=False):
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/transaction.py" in __enter__
150. if not connection.get_autocommit():
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/backends/base/base.py" in get_autocommit
286. self.ensure_connection()
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/backends/base/base.py" in ensure_connection
130. self.connect()
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/utils.py" in __exit__
97. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/backends/base/base.py" in ensure_connection
130. self.connect()
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/backends/base/base.py" in connect
119. self.connection = self.get_new_connection(conn_params)
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py" in get_new_connection
172. connection = Database.connect(**conn_params)
File "/Users/Lisha/Desktop/Starred_Docs/python-getting-started/venv/lib/python2.7/site-packages/psycopg2/__init__.py" in connect
164. conn = _connect(dsn, connection_factory=connection_factory, async=async)
Exception Type: OperationalError at /db
Exception Value: FATAL: database "python_getting_started" does not exist
只有当我在本地运行应用程序时才会崩溃; herokuapp.com 上的应用程序运行良好。你知道问题可能是什么吗?非常感谢您的帮助。
【问题讨论】:
-
从您的设置中显示数据库
-
@madzohan DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django_postgrespool', 'HOST': 'localhost' , 'NAME': 'python_getting_started', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '' , 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': 'UTC', 'USER': ''}}
-
hm 我没有使用过 django_postgrespool 引擎,但无论如何检查你是否有 python_getting_started 数据库:psql -l | grep '^ python_getting_started\b'
-
我想我没有数据库,但我只是通过运行“create database python_getting_started;”创建了它。但它没有正确配置,并且它不包含与远程数据库相同的数据。我刚刚意识到,在教程中,如果我将“/db”附加到远程 URL(herokuapp.com 上的应用程序),该功能应该可以工作;它并没有说它应该在本地工作。但是有没有办法让它像远程一样在本地工作?并使用远程数据库而不是本地数据库?
-
python manage.py migrate
标签: python django postgresql heroku