[英]Flask-SQLAlchemy relationship error (relation "table_name" does not exist)
我正在嘗試在 User_Info 表和其余表之間建立外鍵(一對多關系),但它給了我這個錯誤:
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) 關系“user_info”不存在第 1 行:INSERT INTO user_info (username, first_name, last_name, gend... ^
[SQL: INSERT INTO user_info (username, first_name, last_name, sex, date_of_birth, profile_img_url) VALUES (%(username)s, %(first_name)s, %(last_name)s, %(gender)s, %(date_of_birth)s , %(profile_img_url)s) RETURNING user_info.id] [參數:{'username': 'gohammedhl', 'first_name': 'Ameer', 'last_name': 'Farqad', 'gender': '1', 'date_of_birth ': '2019-09-25', 'profile_img_url': 'bla bla'}](此錯誤的背景: http ://sqlalche.me/e/f405)
這是我的表:
class User_Info(UserMixin, db.Model):
__tablename__ = "user_info"
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), nullable=False, unique=True)
first_name = db.Column(db.String(30), nullable=False)
last_name = db.Column(db.String(30), nullable=False)
gender = db.Column(db.String(2), nullable=False)
date_of_birth = db.Column(db.DATE, nullable=False)
profile_img_url = db.Column(db.String, nullable=True)
post = db.relationship("Posts", backref="post_author", lazy=True)
comment = db.relationship("Comments", backref="comment_author", lazy=True)
phone_number = db.relationship("User_Auth", backref="ph_no_owner", lazy=True)
class User_Auth(UserMixin, db.Model):
__tablename__ = "user_auth"
id = db.Column(db.Integer, primary_key=True)
phone_no = db.Column(db.String(100), nullable=False, unique=True)
password_hash = db.Column(db.String(300), nullable=False)
ph_no_owner_id = db.Column(db.Integer, db.ForeignKey("user_info.id"))
class Posts(db.Model):
__tablename__ = "posts"
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.String(150), nullable=False)
img_url = db.Column(db.String(400), nullable=True)
post_date = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
post_author_id = db.Column(db.Integer, db.ForeignKey("user_info.id"))
class Comments(db.Model):
__tablename__ = "comments"
id = db.Column(db.Integer, primary_key=True)
comment = db.Column(db.String(150), nullable=False)
comment_date = db.Column(db.DateTime, default=datetime.utcnow)
comment_author_id = db.Column(db.Integer, db.ForeignKey("user_info.id"))
有任何想法嗎? 提前致謝!
我解決了!
它缺乏:
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = ("postgresql://postgres:PasswordHere@localhost/dbName")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
和:
with app.app_context():
db.create_all()
盡管此代碼位於為創建內容而創建的單獨文件中,但在我將其放入上表的同一文件中之前,它無法正常工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.