pgAdmin 找不到记录,而 SQLAlchemy 可以

pgAdmin cannot find records while SQLAlchemy does

pgAdmin 没有在用户 table 中找到记录,而 SQLAlchemy 可以。我有一个将用户凭证存储在 AWS postgres 数据库中的网络应用程序。该应用程序运行良好。 Selecting * from postgres returns table 名称但没有记录。当通过 SQLalchemy 连接时,我得到了我期望的结果。

postgres 的新手,所以我尝试使用引号和其他几个查询。

此查询给出所有 tables:

SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE';

结果:

users
post
user

此查询无效:

SELECT * FROM users;

结果:

id | username | email | password
---------------------------------
(Blank)

SQLAlchemy:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import postgresUser, postgresPass
from datetime import datetime

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "Removed for security"  
db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20), nullable=False, 
    default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)


class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    date_posted = db.Column(db.DateTime, nullable=False, 
default=datetime.utcnow)
    content = db.Column(db.Text, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), 
    nullable=False)

users = User.query.all()

for user in users:
    print(user.email) for

给出预期结果:

 jimbo@mail.com
 jane@mail.com

我不知道为什么SQLAchemy 可以找到它而pgAdmin 不能。 post table 的其他查询似乎有效。

使用:Flask、SQLAlchemy、AWS postgres。 运行 在本地机器上。

已解决: 问题是 SQLAlchemy 从 class 'User' 创建了一个名为 'user' 的 table。用户是 Postgres 中的保留 table。在 pgAdmin 中,我只在边栏中看到一个用户 table。我的用户 table 可以通过添加双引号的查询来访问。 SELECT * 来自 "user";

不要使用 SQLAlchemy class 用户或 postgres 用户。我重命名了我的 class 用户。希望它能帮助别人。