此问题已从数据库管理员堆栈交换迁移,因为它可以在堆栈溢出时得到回答。昨天迁移了。
我一直在控制台上收到警告,读了这么多书,我都快发疯了,但我没能解决这个问题:
警告:关系“book.users”将把user.uid列复制到user\u book.uid列,这与关系“user.books”(将user.uid复制到user\u book.uid)冲突。如果这不是意图,那么考虑这些关系是否应该与Buffy填充关联,或者如果VIEWION=真应该应用于一个或多个,如果它们是只读的。对于外键约束部分重叠的不太常见的情况,可以使用orm.foreign()注解来隔离应该写入的列。“重叠”参数可用于删除此警告。
控制台在本通知中引用的表格如下:
user_book = db.Table('user_book',
db.Column('uid', db.Integer, db.ForeignKey('user.uid'), primary_key=True),
db.Column('bid', db.Text, db.ForeignKey('book.bid'), primary_key=True),
db.Column('date_added', db.DateTime(timezone=True), server_default=db.func.now())
)
class User(db.Model):
__tablename__ = 'user'
uid = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(25), nullable=False)
hash = db.Column(db.String(), nullable=False)
first_name = db.Column(db.String(30), nullable=True)
last_name = db.Column(db.String(80), nullable=True)
books = db.relationship('Book', secondary=user_book)
class Book(db.Model):
__tablename__ = 'book'
bid = db.Column(db.Text, primary_key=True)
title = db.Column(db.Text, nullable=False)
authors = db.Column(db.Text, nullable=False)
thumbnail = db.Column(db.Text, nullable=True)
users = db.relationship('User', secondary=user_book)
我使用 user_book table
向用户显示他添加的书籍。
我错过了什么?我借此机会问,从语义上讲,表和外键之间的关系是否正确?
1条答案
按热度按时间deyfvvtc1#
正如警告信息所示,您错过了
back_populates=
关系中的属性: