gpt4 book ai didi

django - 无法在 heroku 上进行 RDS 查询

转载 作者:行者123 更新时间:2023-11-29 11:44:28 35 4
gpt4 key购买 nike

我可以在本地机器上毫无问题地访问我的 RDS postresql 数据库。

设置.py

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'xxxxxxx',
'USER': 'XXXXXXXX',
'PASSWORD': 'XXXXXXXX',
'HOST': 'XXXXXXrds.amazonaws.com',
'PORT': '5432',
}

我将其推送到 Heroku 并在/saferdb/query/处收到 ProgrammingError

在 heroku 的 manage.py shell 中,我尝试访问数据库:

>>> from saferdb.models import Question
>>> q = Question.objects.all()
>>> q.count()

出现以下错误:

Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: relation "saferdb_question" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "saferdb_question"
^


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/query.py", line 387, in count
return self.query.get_count(using=self.db)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/query.py", line 491, in get_count
number = obj.get_aggregation(using, ['__count'])['__count']
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/query.py", line 476, in get_aggregation
result = compiler.execute_sql(SINGLE)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1063, in execute_sql
cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 100, in execute
return super().execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "saferdb_question" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "saferdb_question"
^

最佳答案

错误是因为数据库中不存在表,这意味着您需要迁移数据库模型。如需进一步引用,请阅读 django 迁移 here

heroku 中的数据库迁移是通过这种方式完成的,在 Procfile 文件中指定行。

release: python manage.py migrate
web: gunicorn col.wsgi --log-file -

因此,无论何时部署新代码,heroku 都会自动迁移数据库模型。如需进一步引用,请查看 here .让我知道这是否有效。

关于django - 无法在 heroku 上进行 RDS 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48514008/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com