python - sqlalchemy.exc.ProgrammingError:(psycopg2.errors.UndefinedTable)关系“用户”不存在
问题描述
我目前正在学习 cs50web 课程,我必须将我的烧瓶应用程序连接到 heroku postgres 数据库,我已经使用 pgadmin 4 创建了表,但我无法访问数据。
import os
from flask import Flask, session
from flask_session import Session
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from dotenv import load_dotenv
load_dotenv()
# Check for environment variable
if not os.getenv("DATABASE_URL"):
raise RuntimeError("DATABASE_URL is not set")
# Set up database
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
rows = db.execute("SELECT * FROM users;")
print(rows)
这是我收到的错误信息
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/Bryan/Downloads/project1/tester.py", line 21, in <module>
rows = db.execute("SELECT * FROM users;")
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/orm/scoping.py", line 162, in do
return getattr(self.registry(), name)(*args, **kwargs)
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1268, in execute
clause, params or {}
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 988, in execute
return meth(self, multiparams, params)
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
distilled_params,
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
e, statement, parameters, cursor, context
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 383, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 128, in reraise
raise value.with_traceback(tb)
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/Users/Bryan/anaconda3/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "users" does not exist
LINE 1: SELECT * FROM users;
^
[SQL: SELECT * FROM users;]
(Background on this error at: http://sqlalche.me/e/f405)
[Finished in 6.69s]
解决方案
这只是说没有“用户”表这样的东西。
推荐阅读
- jenkins - Jenkins Xvfb 插件 - 在构建中获取显示名称偏移量
- excel - 等到加载特定元素
- json - jsonpb,为什么要将int64解码为json,结果是字符串。像 int64 str=10 -->str:"10"
- node.js - 如何使用 express-formidable 包重命名文件
- java - Service vs IntentService 用于数据库远程操作
- menu - 仅为特定用户隐藏菜单odoo 11
- java - 如何在 Java 中重用没有框架的实例?
- mysql - MySQL 从多个查询到一个?
- python - 为什么我不能在 IF 语句中匹配 True / False 值?
- bash - bash bash 别名究竟是什么?